Поиск по сайту:

5 примеров команды stat для новичков в Linux


команда stat — полезная утилита для просмотра состояния файла или файловой системы. Он извлекает такую информацию, как тип файла; права доступа в восьмеричном и человекочитаемом формате; Строка контекста безопасности SELinux; время рождения файла, последний доступ, последняя модификация данных, последнее изменение статуса как в удобочитаемом виде, так и в секундах с момента Epoch и многое другое.

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

Проверьте статус файла Linux

1. Самый простой способ использовать stat — предоставить ему файл в качестве аргумента. Следующая команда отобразит размер, блоки, блоки ввода-вывода, тип файла, значение индексного дескриптора, количество ссылок и другую информацию о файле /var/log/syslog, как показано на снимке экрана:

$ stat /var/log/syslog

File: '/var/log/syslog'
  Size: 26572     	Blocks: 56         IO Block: 4096   regular file
Device: 80ah/2058d	Inode: 8129076     Links: 1
Access: (0640/-rw-r-----)  Uid: (  104/  syslog)   Gid: (    4/     adm)
Access: 2018-04-06 09:42:10.987615337 +0530
Modify: 2018-04-06 11:09:29.756650149 +0530
Change: 2018-04-06 11:09:29.756650149 +0530
 Birth: -

Проверьте состояние файловой системы

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

$ stat -f /var/log/syslog

File: "/var/log/syslog"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16012830   Available: 11700997
Inodes: Total: 21544960   Free: 20995459

Вы также можете указать каталог/файловую систему в качестве аргумента, как показано.

$ stat -f /

File: "/"
    ID: ce97e63d2201c974 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 84769790   Free: 16056471   Available: 11744638
Inodes: Total: 21544960   Free: 21005263

Включить отслеживание символических ссылок

3. Поскольку Linux поддерживает ссылки (символические и жесткие ссылки), некоторые файлы могут иметь одну или несколько ссылок или даже существовать в файловая система.

Чтобы разрешить stat переходить по ссылкам, используйте флаг -L, как показано.

$ stat -L /

 File: '/'
  Size: 4096      	Blocks: 8          IO Block: 4096   directory
Device: 80ah/2058d	Inode: 2           Links: 25
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-04-09 10:55:55.119150525 +0530
Modify: 2018-02-20 11:15:54.462893167 +0530
Change: 2018-02-20 11:15:54.462893167 +0530
 Birth: -

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

4. stat также позволяет использовать определенный или собственный формат вместо формата по умолчанию. Флаг -c используется для указания используемого формата. Он печатает новую строку после каждого использования последовательности форматов.

Альтернативно вы можете использовать опцию --printf, которая позволяет интерпретировать управляющие последовательности обратной косой черты и отключает печать завершающего символа новой строки. Например, вам нужно использовать \n в формате, чтобы напечатать новую строку.

stat --printf='%U\n%G\n%C\n%z\n' /var/log/secure

Значение последовательности форматов файлов, использованных в приведенном выше примере:

  • %U – имя пользователя владельца
  • %G – имя группы владельца
  • %C – строка контекста безопасности SELinux.
  • %z – время последнего изменения статуса, понятное человеку.

5. Вот пример, показывающий использование принятых последовательностей форматов для файловых систем.

stat --printf='%n\n%a\n%b\n' /

Значение последовательностей форматов, используемых в приведенной выше команде.

  • %n – показывает имя файла.
  • %a – печатать бесплатные блоки, доступные не суперпользователю.
  • %b – выводит общее количество блоков данных в файловой системе.

Распечатать информацию в краткой форме

6. Опцию -t можно использовать для печати информации в краткой форме.

$ stat -t /var/log/syslog

/var/log/syslog 12760 32 81a0 104 4 80a 8129076 1 0 0 1523251873 1523256421 1523256421 0 4096

И последнее замечание: ваша оболочка может иметь свою собственную версию stat; пожалуйста, обратитесь к документации вашей оболочки для получения подробной информации о поддерживаемых опциях. Чтобы просмотреть все принятые последовательности выходных форматов, обратитесь к странице руководства по статистике.

man stat 

В этой статье мы объяснили пять примеров команд stat для новичков в Linux. Используйте форму обратной связи ниже, чтобы задать любые вопросы.