Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Руководство по команде stat для начинающих

Оригинал: Linux stat Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 16 февраля 2018 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2018 г.

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

В этом уроке мы обсудим основы команды stat, используя несколько простых для понимания примеров. Все примеры, приведенные здесь, были протестированы на Ubuntu 16.04LTS.

Команда stat

Команда stat в Linux позволяет просматривать состояние файла (или даже файловой системы). Вот синтаксис команды:

stat [OPTION]... FILE...

Ниже приведены некоторые примеры в стиле вопрос/ответ, которые помогут вам понять, как работает stat.

Вопрос 1. Как использовать команду stat?

Все, что вам нужно сделать, - запустить команду «stat» с именем файла, о котором вы хотите узнать больше.

$ stat [filename]

Например:

$ stat test.txt

команда «stat»

Таким образом, вы можете увидеть такие детали, как имя файла, размер, тип файла, разрешения доступа, UID и GID, а также время доступа/модификации.

Вопрос 2. Как вывести информацию в краткой форме?

Краткая форма вывода упрощает для других программ синтаксический анализ вывода. Чтобы получить выходную информацию «stat» в этой форме, используйте опцию командной строки -t.

$ stat -t test.txt

вывод информацию в краткой форме

Вопрос 3. Как сделать вывод информации stat в пользовательском формате?

Для этого используйте опцию --format. Эта опция требует, чтобы вы ввели правильную последовательность символов форматирования, а их имеется очень много. Например, чтобы получить доступ к разрешениям/правам в форме, читаемой человеком, используйте %A.

Например:

$ stat --format=%A test.txt

создаст следующий вывод:

вывод информации stat в пользовательском формате

Аналогично, вы можете использовать %n для имени файла, %s для размера и %U для имени пользователя владельца файла.

вывод информации stat в пользовательском формате

Вопрос 4. Чем опция --format отличается от --printf?

В принципе оба варианта делают то же самое. Разница заключается в том, как производится вывод. В то время как --format выводит новую строку после каждого использования, в случае --printf новая строка не добавляется. Вот как man-страница объясняет оба варианта:

-c  --format=FORMAT
используется заданный формат FORMAT вместо формата по умолчанию. После каждого использования FORMAT выводится новая строка.
--printf=FORMAT
работает как --format, но интерпретирует обратные слеши и не выводит обязательную новую строку. Если вам нужна новая строка, включите \n в FORMAT.

Вопрос 5. Как заставить stat работать с файлом, если он является ссылкой?

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

$ stat -L [filename]

Заключение

Было бы неправильно говорить, что у stat нет кривой обучения, но объем усилий, требуемых для этого, невелик, так как количество параметров командной строки ограничено. Мы обсудили здесь большинство из них. Для получения дополнительной информации прочитайте man-страницу утилиты.