? ITAX PRO CIRCUIT #4 - ГРУППА BYUN, DARK, DRG, NICE
Оглавление:
- Использование команды
stat
- Отображение информации о файловой системе
- Разыменование (Follow) Симлинки
- Настройка вывода
- Вывод
stat
- утилита командной строки, которая отображает подробную информацию о данных файлах или файловых системах.
В этой статье объясняется, как использовать команду
stat
.
Использование команды
stat
Синтаксис команды
stat
следующий:
stat… 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
отображает следующую информацию о файле:
- Файл - Имя файла. Размер - Размер файла в байтах. Блоки - Количество выделенных блоков, которые занимает файл. Блок - Размер в байтах каждого блока. Тип файла - (например, обычный файл, каталог, символическая ссылка…) Устройство - Номер устройства в шестнадцатеричном и десятичном виде. Идентификатор - Номер инода. Ссылки - Количество жестких ссылок. Доступ - Права доступа к файлам в числовом и символическом методах. Идентификатор - Идентификатор пользователя и имя владельца. Гид - Группа Идентификатор и имя владельца. Контекст - контекст безопасности SELinux. Доступ - последний раз, когда к файлу обращались. Модификация - последний раз, когда содержимое файла было изменено. Изменить - последний раз, когда атрибут файла или содержимое было изменено. Birth - Время создания файла (не поддерживается в 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 - Идентификатор файловой системы в шестнадцатеричном формате. Имя - Максимальная длина имен файлов. Размер основного блока - Размер каждого блока в файловой системе. Блоки:
- Всего - количество общих блоков в файловой системе. Свободно - количество свободных блоков в файловой системе. Доступно - количество свободных блоков, доступных пользователям без полномочий root.
- Total - количество общих инодов в файловой системе. Free - количество свободных инодов в файловой системе.
Разыменование (Follow) Симлинки
По умолчанию
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: %n\nPermissions: %a\n' /etc
печатает новую строку:
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
.
Команда Chmod в Linux (права доступа к файлам)
В Linux доступ к файлам управляется через права доступа к файлам, атрибуты и права собственности. В этом руководстве рассказывается, как использовать команду chmod для изменения прав доступа к файлам и каталогам.
Команда Chgrp в Linux (сменить группу)
В Linux каждый файл связан с владельцем и группой и имеет разрешения, которые определяют, какие пользователи могут читать, записывать или выполнять файл. Команда chgrpc меняет групповое владение данными файлами.
Команда cp в linux (копирование файлов)
cp - утилита командной строки для копирования файлов и каталогов в системах Unix и Linux.