Вся информация в одной команде: stat

Утилита stat выводит информацию о заданных файлах и файловых системах. В  Linux есть и другие команды, что выполняют эту же функцию, например ls. Но они показывают только часть той информации, которую даёт stat

stat — это утилита командной строки, что отображает подробную информацию об определенных файлах или файловых системах.

Команда stat включена в GNU Coreutils (пакет базовых утилит для UNIX-подобных ОС).

Она предоставляет множество метаданных, включая: 

  • размер файла, 
  • расположение inode, 
  • права доступа и контекст SELinux, 
  • время создания и модификации файлов, файловых систем и т.д. 

Если короче, то stat — удобный и быстрый способ сбора информации, которую обычно можно получить используя несколько разных команд.

Как установить stat в Linux?

Вероятно, у вас уже установлена stat команда, ведь это базовая утилита. Если её всё же нет, пакетный менеджер Linux вам в помощь.

Кроме этого, вы можете скомпилировать Coreutils из исходного кода.

Как узнать статус файла?

При вызове команды без каких-либо параметров, stat отображает следующую информацию о файле:

  • имя файла,
  • размер файла в байтах,
  • количество выделенных блоков, что занимает файл,
  • размер каждого блока ввода-вывода в байтах,
  • тип файла,
  • номер Inode, 
  • количество жёстких ссылок,
  • права доступа к файлам,
  • Uid — ID пользователя и имя владельца,
  • Gid — ID группы и имя владельца,
  • контекст безопасности SELinux,
  • время последнего доступа к файлу,
  • время последнего изменения содержимого файла и т.д.

Запуск stat обеспечивает вывод о конкретном файле или каталоге:

Как анализировать вывод?

Тем, кто привык анализировать вывод с помощью других утилит, таких как awk, есть опция —terse (-t). Она форматирует вывод без заголовков или разрывов строк.

Как задать собственный формат?

Вы можете определить собственный формат вывода, используя опцию —printf и синтаксис, аналогичный printf. Каждый атрибут, о котором сообщает stat, имеет последовательность форматов (%c для SELinux, %n для имени файла и т. д). Вы можете выбрать, что именно хотите видеть в отчёте.

Вот несколько распространённых последовательностей форматов:

  • %a права доступа,
  • %F тип файла,
  • %n имя файла,
  • %U имя пользователя,
  • %u идентификатор пользователя,
  • %g идентификатор группы,
  • %w время рождения,
  • %y время модификации.

Полный список последовательностей форматов доступен на странице руководства stat и на Coreutils.

Итог

Если вы когда-либо парсили вывод ls -l, то вы оцените гибкость команды stat. Независимо от того, используете ли вы всю полученную информацию, которая идёт по умолчанию, или создаёте собственные запросы, команда stat обеспечит лёгкий доступ к необходимым данным. 

Добавить комментарий

Спасибо, что поделились