Большинство людей используют команду ls с опцией -l для проверки прав доступа к файлу в Linux.
Что если я скажу вам, что есть лучший способ проверить атрибуты файла? Это простая, но полезная команда, которая называется stat.
Команда stat в Linux
Команда stat перечисляет важные атрибуты файлов и каталогов. Он также может отображать информацию о файловой системе вместо файлов.
У него простой синтаксис:
stat [options] files
Есть только несколько вариантов с командой stat:
- -f: показать информацию для файловой системы вместо файла
- -L: переходить по символическим ссылкам и показывать информацию о файле, на который они указывают
- -t: краткий режим печатает информацию в одну строку
Использование команды stat для получения информации о файле
Вот пример вывода, если вы используете команду stat без каких-либо опций:
stat sample.txt
File: sample.txt
Size: 426 Blocks: 8 IO Block: 4096 regular file
Device: 10302h/66306d Inode: 8259907 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/abhishek) Gid: ( 1000/abhishek)
Access: 2020-01-06 09:48:02.908946552 +0530
Modify: 2020-01-05 10:16:33.225203223 +0530
Change: 2020-01-06 19:51:28.737207649 +0530
Birth: -
Давайте рассмотрим вывод:
- File : имя файла.
- Size : размер файлов в байтах.
- Blocks : Количество блоков файловой системы, необходимых файлу на диске.
- IO Blocks : размер блока файловой системы. Обычно это 4 КБ.
- Тип файла : это может быть файл, каталог, ссылка, сокеты.
- Device : номер устройства (идентификатор жесткого диска) в шестнадцатеричном и десятичном виде.
- Inode : номер инода. Узнайте больше об inode в Linux .
- Links : Количество жестких ссылок на файл.
- Access : права доступа к файлам в абсолютном и символическом режимах.
- Uid : идентификатор пользователя и имя пользователя владельца файла
- Gid : идентификатор группы и имя группы владельца файла.
- Access: Этот доступ относится к отметке времени доступа (в последний раз к файлу), также называемой atime.
- Modify : метка времени изменения (последний раз, когда файл был изменен), также называемая mtime.
- Change : отметка времени изменения (последний раз, когда файл вызывался), также называемая ctime. Прочтите эту статью, чтобы узнать больше о atime, mtime и ctime .
- Birth : оригинальная дата создания файла. Это не используется в Linux.
Если вы используете кратких режим с опцией -t, вы увидите почти ту же информацию отображенную в одной строке, но без какого-либо описания и имени полей.
abhishek@linuxhandbook:$ stat -t sample.txt
sample.txt 426 8 81b4 1000 1000 10302 8259907 1 0 0 1578284282 1578199593 1578320488 0 4096
Получить информацию о файловой системе с помощью команды stat
Вы можете использовать опцию -f для отображения информации о файловой системе вместо самого файла.
abhishek@linuxhandbook:$ stat -f sample.txt
File: "sample.txt"
ID: 65205b688c8b079c Namelen: 255 Type: ext2/ext3
Block size: 4096 Fundamental block size: 4096
Blocks: Total: 61142095 Free: 41522899 Available: 38399635
Inodes: Total: 15597568 Free: 15279217
Как вы можете видеть в выводе, он дает вам следующую информацию:
- File: имя файла.
- ID: идентификатор файловой системы в шестнадцатеричном формате.
- Namelen: максимальная длина для имен файлов.
- Type: Тип файловой системы.
- Block size: объем данных, который запрашивает запросы на чтение для оптимальной скорости передачи данных.
- Fundamental block size: размер блока в файловой системе
- Block total: свободных блоков и доступных блоков (для пользователей без полномочий root)
- Inodes: Количество общих инодов и свободных инодов
Используйте команду stat с несколькими файлами
Вы можете запустить команду stat с несколькими файлами.
Вы можете предоставить их имена индивидуально, к примеру:
stat file1.txt file2.txt
Или вы также можете предоставить шаблон имени файла:
stat *.txt