Команда Stat в Linux

Команда Linux stat

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

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

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

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

 stat [ OPTION ] ... FILE...

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

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

 stat file.txt

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

 File: file.txt Size: 4030 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 13633379 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ linuxize) Gid: ( 1000/ linuxize) Access: 2019-11-06 09:52:17.991979701 +0100 Modify: 2019-11-06 09:52:17.971979713 +0100 Change: 2019-11-06 09:52:17.971979713 +0100 Birth: -

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

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

Отображение информации о файловой системе

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

 stat -f file.txt

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

 File: "package.json" ID: 8eb53097b4494d20 Namelen: 255 Type: ext2/ext3 Block size: 4096 Fundamental block size: 4096 Blocks: Total: 61271111 Free: 25395668 Available: 22265851 Inodes: Total: 15630336 Free: 13979610

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

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

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

 stat /etc/resolv.conf
 File: /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf Size: 39 Blocks: 0 IO Block: 4096 symbolic link Device: 801h/2049d Inode: 8126659 Links: 1 Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-11-06 21:12:26.875956073 +0100 Modify: 2018-07-24 11:11:48.128794519 +0200 Change: 2018-07-24 11:11:48.128794519 +0200 Birth: -

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

 stat -L /etc/resolv.conf
 File: /etc/resolv.conf Size: 715 Blocks: 8 IO Block: 4096 regular file Device: 17h/23d Inode: 989 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 101/systemd-resolve) Gid: ( 103/systemd-resolve) Access: 2019-11-06 20:35:25.603689619 +0100 Modify: 2019-11-06 20:35:25.555689733 +0100 Change: 2019-11-06 20:35:25.555689733 +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: %nnPermissions: %an' /etc

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

 Name: /etc Permissions: 755

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

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

 stat -t /etc
 /etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096

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

Заключение

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

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

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

стат терминал

Связанные руководства

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *