Linux stat имя файла
Выводит содержимое полей дескриптора файла или статус файловой системы $ stat example.file
File: `example.file’
Size: 5614 Blocks: 16 IO Block: 4096 regular file
Device: 30bh/779d Inode: 786506 Links: 1
Access: (0644/-rw-r—r—) Uid: ( 500/aleksander) Gid: ( 500/aleksander)
Access: 2005-04-26 20:13:06.000000000 +0000
Modify: 2005-04-26 20:17:39.000000000 +0000
Change: 2005-04-26 20:18:09.000000000 +0000 $ stat -f example.file File: example.file
ID: 0 Namelen: 255 Type: ext2/ext3
Blocks: Total: 4125127 Free: 3855924 Available: 3646377 Size: 4096
Inodes: Total: 2097152 Free: 2086052
ОПЦИИ
-c —format = FORMAT применяется указанный формат вывода FORMAT (см.далее), вместо используемого по умолчанию
-f , —filesystem выводит статус файловой системы (на которой расположен FILE ) вместо статуса файла -L , —dereference выводит информацию о статусе оригинального файла, с которым связана ссылка FILE -t , —terse выводит информацию в сокращённой (сжатой) форме —help выводит это описание программы и завершает её работу —version выводит информацию о версии программы и завершает её работу
В качестве формата вывода FORMAT для файлов (но не для опции -f , —filesystem ) допустимы следующие флажки и их комбинации последовательностей: %A Права доступа в удобной для восприятия человеком форме (rwx) $ stat -c%A example.file
-rw-r—r— %a Права доступа в восьмеричной форме (0..7) $ stat -c%a example.file
644 %B Размер в байтах каждого блока, отображаемого флажком `%b’ $ stat -c%B example.file
512 %b Число занимаемых блоков (см.также флажок %B) $ stat -c%b example.file
16 %D Номер устройства в шестнадцатеричной форме $ stat -c%D example.file
30b %d Номер устройства в десятичной форме $ stat -c%d example.file
779 %F Тип файла (например, обычный файл, каталог, ссылка, сокет, спец.блочный файл, сец.символьный файл, файл именованного канала) $ stat -c%F example.file
regular file (т.е. обычный файл) %f Права доступа к файлу в «необработанном» (расширенном) шестнадцатеричной виде $ stat -c%f example.file
81a4 (т.е. 100644 в восьмеричной форме) %G Действующий (именной) идентификатор группы владельца файла (т.е. название группы) $ stat -c%G example.file
aleksander %g Числовой идентификатор группы (GID) владельца файла $ stat -c%g example.file
500 %h Число жёстких ссылок $ stat -c%h example.file
1 %i Номер индексного дескриптора $ stat -c%i example.file
786506 %N Имя файла, а для символических ссылок — имя ссылки и оригинального файл с полным путём его месторасположения $ stat -c%N link.example.file
`link.example.file’ -> `/home/aleksander/example.file’ %n Имя файла $ stat -c%n example.file
example.file %o Размер блока для операций ввода/вывода (I/O) $ stat -c%o example.file
4096 %s Общий размер файла в байтах $ stat -c%s example.file
5614 %T Младший номер типа устройства в шестнадцатеричной форме $ stat -c%T example.file
0 %t Старший номер типа устройства в шестнадцатеричной форме $ stat -c%t example.file
0 %U Именной идентификатор владельца файла $ stat -c%U example.file
aleksander %u Числовой идентификатор владельца файла (UID) $ stat -c%u example.file
500 %X Время последнего доступа к файлу в секундах c начала компьютерной эры («ключевого момента»), т.е. момента, с которого отсчитывает время Unix 00:00:00 1 января 1970 🙂 $ stat -c%X example.file
1114546386 %x Время последнего доступа к файлу в привычном (дата-время) виде $ stat -c%x example.file
2005-04-26 20:13:06.000000000 +0000 %Y Время последней модификации файла в секундах c начала компьютерной эры (1970) $ stat -c%Y example.file
1114546659 %y Время последней модификации файла в привычном (дата-время) виде $ stat -c%y example.file
2005-04-26 20:17:39.000000000 +0000 %Z Время последних изменений файла в секундах c начала компьютерной эры (1970) $ stat -c%Z example.file
1114546689 %z Время последних изменений файла в привычном (дата-время) виде $ stat -c%z example.file
2005-04-26 20:18:09.000000000 +0000
В качестве формата вывода FORMAT для файловых систем (для опции -f , —filesystem ) допустимы следующие флажки и их комбинации последовательностей: %a Число блоков доступных не только суперпользователю (root) $ stat -f -c%a example.file
3646377 %b Общее число блоков в файловой системе $ stat -f -c%b example.file
4125127 %c Общее число файловых дескрипторов в файловой системе $ stat -f -c%c example.file
2097152 %d Число свободных файловых дескрипторов в файловой системе $ stat -f -c%d example.file
2086052 %f Число свободных блоков в файловой системе $ stat -f -c%f example.file
3855924 %i Идентификатор файловой системы в шестнадцатеричной форме $ stat -f -c%i example.file
0 %l Максимальная длина имён файлов в файловой системе $ stat -f -c%l example.file
255 %n Имя файла $ stat -f -c%n example.file
example.file %s Оптимальный для файловой системы (операций) размер блока данных $ stat -f -c%s example.file
4096 %T Тип файловой системы в удобном для восприятия человеком виде $ stat -f -c%T example.file
ext2/ext3 %t Тип файловой системы в шестнадцатеричной форме $ stat -f -c%t example.file
*
АВТОР
ИНФОРМАЦИЯ ОБ ОШИБКАХ
АВТОРСКИЕ ПРАВА
Copyright © 2004 Free Software Foundation, Inc.
Это свободно-распространяемый продукт; для получения подробных сведений смотрите Универсальную Общественную Лицензию GNU. Этот продукт распространяется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий КОММЕРЧЕСКОЙ ЦЕННОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ.
СМ. ТАКЖЕ
Полная документация по команде stat находится в Texinfo руководстве. Если программы info и stat правильно установлены в вашей системе, тогда с помощью команды info coreutils stat
вы получите возможность ознакомится с полным руководством.
Команда Stat в Linux
stat — это утилита командной строки, которая отображает подробную информацию об определенных файлах или файловых системах.
В этой статье объясняется, как использовать команду stat .
Использование команды stat
Синтаксис команды stat следующий:
stat принимает одно или несколько имен входных FILE и включает ряд параметров, которые управляют поведением команды и выводом.
Давайте посмотрим на следующий пример:
Результат будет выглядеть примерно так:
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 отображает следующую информацию о файле:
- Файл — имя файла.
- Размер — размер файла в байтах.
- Блоки — количество выделенных блоков, занимаемых файлом.
- Блок ввода-вывода — размер каждого блока в байтах.
- Тип файла — (например, обычный файл, каталог, символическая ссылка.)
- Устройство — номер устройства в шестнадцатеричном и десятичном формате.
- Inode — номер Inode.
- Ссылки — количество жестких ссылок.
- Доступ — права доступа к файлам в числовых и символьных методах.
- Uid — ID пользователя и имя владельца .
- Gid — ID группы и имя владельца.
- Контекст — контекст безопасности SELinux.
- Доступ — время последнего доступа к файлу.
- Изменить — время последнего изменения содержимого файла.
- Изменить — время последнего изменения атрибута или содержимого файла.
- Рождение — время создания файла (не поддерживается в Linux).
Отображение информации о файловой системе
Чтобы получить информацию о файловой системе, в которой находится данный файл, вместо информации о самом файле, используйте параметр -f , ( —file-system ):
Результат команды будет выглядеть так:
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.
- Всего — общее количество индексных дескрипторов в файловой системе.
- Free — количество свободных индексных дескрипторов в файловой системе.
Разыменование (следовать) символическим ссылкам
По умолчанию stat не следует за символическими ссылками . Если вы запустите команду для символической ссылки, вывод будет включать информацию о символической ссылке, а не о файле, на который она указывает:
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 ):
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 .
Например, чтобы просмотреть только тип файла, вы должны запустить:
Вы можете комбинировать любое количество директив форматирования и, при желании, использовать между ними настраиваемые разделители. Разделитель может быть одиночным символом или строкой:
/dev/null,character special file
Чтобы интерпретировать специальные символы, такие как —printf или табуляция, используйте параметр —printf :
stat --printf='Name: %nnPermissions: %an' /etc
stat также может отображать информацию в краткой форме. Этот формат полезен для анализа другими утилитами.
Вызовите команду с параметром -t ( —terse ), чтобы распечатать вывод в краткой форме:
/etc 12288 24 41ed 0 0 801 8126465 147 0 0 1573068933 1573068927 1573068927 0 4096
Для получения полного списка всех директив форматирования для файлов и типов файловых систем используйте man stat или stat —help в вашем терминале.
Выводы
Команда stat выводит информацию о данных файлах и файловых системах.
В Linux несколько других команд могут отображать информацию о данных файлах, причем ls является наиболее часто используемым, но он показывает только часть информации, предоставленной командой stat .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.