Библиотека сайта 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
Таким образом, вы можете увидеть такие детали, как имя файла, размер, тип файла, разрешения доступа, UID и GID, а также время доступа/модификации.
Вопрос 2. Как вывести информацию в краткой форме?
Краткая форма вывода упрощает для других программ синтаксический анализ вывода. Чтобы получить выходную информацию «stat» в этой форме, используйте опцию командной строки -t.
$ stat -t test.txt
Вопрос 3. Как сделать вывод информации stat в пользовательском формате?
Для этого используйте опцию --format. Эта опция требует, чтобы вы ввели правильную последовательность символов форматирования, а их имеется очень много. Например, чтобы получить доступ к разрешениям/правам в форме, читаемой человеком, используйте %A.
Например:
$ stat --format=%A test.txt
создаст следующий вывод:
Аналогично, вы можете использовать %n для имени файла, %s для размера и %U для имени пользователя владельца файла.
Вопрос 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-страницу утилиты.