Посмотреть информацию по файлу и директории в Linux
У каждого файла и папки в файловой системе есть так называемая структура Inode в которой хранятся метаданные этого объекта. Там хранится владелец, группа владельца, время изменения, создания и доступа к файлу, а также другая информация. Её можно увидеть не только с помощью инструментов отладки файловой системы.
Часть из этой информации показывает утилита ls
, но если вам нужно больше, то можно воспользоваться командой stat
.
Команде stat
надо передать опции и путь к файлу, для которого надо посмотреть информацию:
stat опции путь_к_файлу
Опции передавать не обязательно и их совсем не много:
Короткий формат опции |
Описание |
---|---|
-L |
Показывать информацию о файле вместо символической ссылки |
-f |
Показывать информацию о файловой системе в которой расположен файл |
-c |
Позволяет указать формат вывода вместо стандартного, каждый файл выводится с новой строки |
--printf |
Аналогично -c , только для новой строки надо использовать \n |
-t |
Показ информации в очень кратком виде, в одну строку |
--version |
Показать версию утилиты |
Это все опции команды. Теперь давайте разберемся с примерами использования. Чтобы посмотреть информацию о файле достаточно запустить программу без опций передав ей путь к файлу, например /etc/passwd
:
stat /etc/passwd
КАРТИНКА1
Рассмотрим что означает вывод программы:
Файл (File)
путь к файлу по которому показывается информацияРазмер (Size)
размер файла в байтахБлок В/В (IO Block)
размер блока файловой системы в байтахБлоков (Blocks)
количество блоков файловой системы, занятых файломУстройство (Device)
идентификатор устройства, например HDD, на котором сохранён файлInode
уникальный номер Inode этого файлаСсылки (Links)
количество жестких ссылок на этот файлДоступ (Access)
права доступа к файлуUid
идентификатор и имя пользователя-владельца файлаGid
идентификатор и имя группы файлаДоступ (Access)
время последнего доступа к файлуМодифицирован (Modify)
время когда в последний раз изменялся контент файлаИзменен (Change)
время, когда в последний раз изменялись атрибуты файла или контент файлаСоздан (Birth)
зарезервировано для отображения первоначальной даты создания файла, но пока ещё не реализовано
Надо ещё немного поговорить про формат времени. Например, время последнего доступа к файлу - 2020-12-02 18:25:01.043831739 +0200. Это время показывается с учётом временной зоны. А цифры +0200 показывают, что временная зона на компьютере, который создал или модифицировал этот файл на два часа больше чем UTC, то есть Europe/Kiev в зимнее время.
Символические ссылки
Если попробовать передать утилите символическую ссылку, то она покажет информацию только из Inode самой ссылки:
stat /etc/passwdlink
Для того чтобы увидеть информацию о файле, на который указывает ссылка надо использовать опцию -L
:
stat -L /etc/passwdlink