Как использовать команду Stat в Linux

12 set 2022 3 min di lettura
Как использовать команду Stat в Linux
Indice dei contenuti

Введение

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

В этой статье объясняется, как использовать команду stat в Linux.

Использование команды Стат.

Синтаксис команды stat следующий:

stat [OPTION]... FILE...

stat принимает одно или несколько входных имен FILE и включает в себя набор опций, управляющих поведением и выводом команды.

Давайте посмотрим на следующий пример:

stat mylog.log

Вывод будет выглядеть следующим образом:

 File: mylog.log
 Size: 1239291 Blocks: 2424 IO Block: 512 regular file
 Device: 2h/2d Inode: 24769797950641873 Links: 1
 Access: (0644/-rw-r--r--) Uid: ( 1000/piero) Gid: ( 1000/piero)
 Access: 2019-09-28 20:01:33.130738600 +0200
 Modify: 2019-08-08 03:04:23.000000000 +0200
 Change: 2019-09-28 20:01:33.143704400 +0200
 Birth: -

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

  • Файл: имя файла.
  • Размер: размер файла в байтах.
  • Блоки: количество выделенных блоков, полученных из файла.
  • Блок ввода-вывода — размер в байтах каждого блока.
  • Тип файла - (например, обычный файл, каталог, символическая ссылка...)
  • Устройство: номер устройства в шестнадцатеричном и десятичном формате.
  • Inode: номер узла.
  • Ссылки: количество реальных ссылок.
  • Доступ: права доступа к файлам числовыми и символьными методами.
  • Uid: идентификатор пользователя и имя владельца.
  • Gid: идентификатор группы и имя владельца.
  • Контекст — контекст безопасности SELinux.
  • Доступ: время последнего доступа к файлу.
  • Редактировать: время последнего изменения содержимого файла.
  • Редактировать: время последнего изменения атрибута или содержимого файла.
  • Рождение: время создания файла (не поддерживается в Linux).

Просмотр информации о файловой системе

Чтобы получить информацию о файловой системе, в которой находится указанный файл, а не информацию о самом файле, используйте параметр -f ( --file-system ):

stat -f mylog.log

Вывод команды будет выглядеть так:

 File: "mylog.log"
 ID: 100000000 Namelen: 255 Type: wslfs
 Block size: 4096 Fundamental block size: 4096
 Blocks: Total: 60884223 Free: 40801995 Available: 40801995
 Inodes: Total: 999 Free: 1000000

Когда stat вызывается с параметром -f, он отображает следующую информацию:

  • Файл: имя файла.
  • ID: идентификатор файловой системы в шестнадцатеричном формате.
  • Namelen — максимальная длина имен файлов.
  • Основной размер блока: Размер каждого блока в файловой системе.
  • Блокировки: - Всего - общее количество блокировок в файловой системе. Free — количество свободных блоков в файловой системе. Доступно: количество свободных блоков, доступных для пользователей без полномочий root.
  • Inodes: Total — общее количество инодов в файловой системе. Free — количество свободных инодов в файловой системе.

Разыменование (следовать) Симлинк

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

stat /etc/resolv.conf
 File: /etc/resolv.conf ->../run/resolvconf/resolv.conf
 Size: 29 Blocks: 0 IO Block: 512 symbolic link
 Device: 2h/2d Inode: 562949953739123 Links: 1
 Access: (0777/lrwxrwxrwx) Uid: ( 0/root) Gid: ( 0/root)
 Access: 2019-08-01 22:25:40.458719400 +0200
 Modify: 2019-08-01 22:25:40.458719400 +0200
 Change: 2019-08-01 22:25:40.458719400 +0200
 Birth: -

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

stat -L /etc/resolv.conf
 File: /etc/resolv.conf
 Size: 195 Blocks: 0 IO Block: 512 regular file
 Device: 7h/7d Inode: 1970324837678224 Links: 1
 Access: (0644/-rw-r--r--) Uid: ( 0/root) Gid: ( 0/root)
 Access: 2019-11-07 23:52:30.624839800 +0100
 Modify: 2019-11-07 23:52:30.640820100 +0100
 Change: 2019-11-07 23:52:30.640820100 +0100
 Birth: -

Настройка вывода

Команда stat имеет две опции, которые позволяют настроить вывод в соответствии с вашими потребностями: -c ( --format="format" ) и --printf="format".

Разница между этими двумя опциями заключается в том, что когда в качестве операторов используются два или более файла, --format автоматически добавляет новую строку после вывода каждого операнда. Опция --printf интерпретирует обратную косую черту.

Существует множество директив форматов файлов и файловых систем, которые можно использовать с параметрами --format и --printf.

Например, чтобы просмотреть только тип файла, используйте:

stat --format="%F" /dev/null
character special file

Вы можете комбинировать любое количество директив форматирования и при необходимости использовать настраиваемые разделители между ними. Разделителем может быть одиночный символ или строка:

stat --format="%n,%F" /dev/null
/dev/null,character special file

Чтобы интерпретировать специальные символы, такие как новая строка или табуляция, используйте параметр --printf:

stat --printf='Name: %n\nPermissions: %a\n' /etc

\n напечатать новую строку:

Name: /etc
 Permissions: 755

stat также может отображать информацию в краткой форме. Этот формат полезен для анализа другими утилитами.

Вызовите команду с параметром -t ( --terse ), чтобы распечатать вывод в краткой форме:

stat -t /etc
/etc 512 0 41ed 0 0 2 562949953701446 1 0 0 1558449784 1573167150 1573167150 0 512

Для получения полного списка всех директив формата для файлов и типов файловых систем используйте команды man stat или stat --help в терминале.

Вывод

Команда stat выводит информацию об определенных файлах и файловых системах.

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

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.