DataLife Engine / Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

В одной из прошлых статей мы говорили о том, что у каждого файла и папки в файловой системе есть так называемая структура Inode в которой хранятся метаданные этого объекта. Там хранится владелец, группа владельца, время изменения, создания и доступа к файлу, а также другая информация. Её можно увидеть не только с помощью инструментов отладки файловой системы.

Часть из этой информации показывает утилита ls, но если вам нужно больше, то можно воспользоваться командой stat. В этой статье мы рассмотрим как пользоваться этой командой в Linux.

Команда stat в Linux

Синтаксис команды очень простой. Ей надо передать опции и путь к файлу, для которого надо посмотреть информацию:

$ stat опции /путь/к/файлу

Опции передавать не обязательно и их совсем не много:

Это все опции команды. Теперь давайте разберемся с примерами использования. Чтобы посмотреть информацию о файле достаточно запустить программу без опций передав ей путь к файлу, например /etc/passwd:

stat /etc/passwd

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Рассмотрим что означает вывод программы:

Надо ещё немного поговорить про формат времени. Например, время последнего доступа к файлу - 2020-12-02 18:25:01.043831739 +0200. Это время показывается с учётом временной зоны. А цифры +0200 показывают, что временная зона на компьютере, который создал или модифицировал этот файл на два часа больше чем UTC, то есть Europe/Kiev в зимнее время.

Если попробовать передать утилите символическую ссылку, то она покажет информацию только из Inode самой ссылки:

stat /etc/passwdlink

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Для того чтобы увидеть информацию о файле, на который указывает ссылка надо использовать опцию -L:

stat -L /etc/passwdlink

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Утилите можно передать не один файл, а несколько:

stat /etc/passwd /etc/group

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

И тут уже понадобиться возможность настройки формата вывода. Для форматирования вывода можно использовать такие последовательности символов:

Это далеко не все возможные последовательности, больше вы моете найти в справке по утилите:

man stat

Например, давайте выведем только имя, файла, и время последней модификации его содержимоего:

stat --printf "File %n has been modified %yn" /etc/passwd /etc/group

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Если вы хотите посмотреть информацию о файловой системе, в которой расположен файл, то надо использовать опцию -f:

stat -f /etc/passwd

Stat в Linux: Вся скрытая информация о ваших файлах под контролем

Давайте рассмотрим что означают поля, которые выводит утилита:

Дальше идут общее количество блоков в системе и количество свободных блоков.

Выводы

Из этой небольшой статьи вы узнали что из себя представляет команда stat Linux. Как видите, это очень полезная команда, позволяющая смотреть низкоуровневую информацию о файлах и файловой системе.

22-10-2025, 08:00
Вернуться назад