Примеры
Частые форматные поля для -c:
| Поле | Значение |
|---|---|
%n |
имя |
%s |
размер в байтах |
%A / %a |
права (rwx / восьмеричные) |
%U / %G |
владелец / группа |
%y / %Y |
mtime (человекочитаемо / unix) |
%i |
номер inode |
%h |
число жёстких ссылок |
Полная информация о файле: размер, права, владелец, времена (atime/mtime/ctime), inode.
stat file
всё
stat -c '%a %U:%G %n' file
права-владелец-имя
stat -c '%Y' file
mtime (unix)
ls -lc file
ctime вместо mtime
stat показывает метаданные файла, которых не видно в ls: точные времена,
inode, число ссылок, права в восьмеричном виде, владельца и группу.
Незаменим при разборе «почему служба не читает файл» и «когда это меняли».
По умолчанию stat на симлинке показывает метаданные самой ссылки, а не
файла, на который она указывает — для метаданных цели нужен ключ -L.
Ключ -c задаёт свой формат вывода через плейсхолдеры (%a, %U, %s и
другие) — без него stat печатает фиксированный многострочный блок, неудобный
для разбора в скриптах. -L (--dereference) переключает вывод с самой
ссылки на файл, на который она указывает; без него проверка прав через
stat на симлинке покажет права ссылки (обычно 777), а не файла.
| Ключ | Что делает | Пример |
|---|---|---|
-c --format FORMAT |
Свой формат вывода через плейсхолдеры (%a, %U, %s и другие). | stat -c '%a %U:%G %n' file |
-L --dereference |
Показать метаданные файла, на который указывает симлинк, а не самой ссылки. | stat -L file |
-f --file-system |
Показать сведения о файловой системе вместо файла. | stat -f -c '%T' / |
--printf FORMAT |
Как --format, но без завершающего перевода строки по умолчанию. | stat --printf='%n %s байт\n' *.log |
-t --terse |
Краткий вывод в одну строку — удобно парсить awk/cut. | stat -t file |
Ничего не найдено. Попробуй запрос короче.
Частые форматные поля для -c:
| Поле | Значение |
|---|---|
%n |
имя |
%s |
размер в байтах |
%A / %a |
права (rwx / восьмеричные) |
%U / %G |
владелец / группа |
%y / %Y |
mtime (человекочитаемо / unix) |
%i |
номер inode |
%h |
число жёстких ссылок |
%x) — последний доступ (чтение). Часто отключён (noatime) ради скорости.%y) — последнее изменение содержимого. Именно его показывает ls -l.%z) — последнее изменение метаданных (права, владелец, переименование).Файл перезаписали (редактор сохраняет заново) или процесс дописал. ctime
покажет, трогали ли права/владельца отдельно от содержимого.
ls -l большой, а место не занятоРазрежённый файл (sparse). Сравни stat -c '%s' (логический размер) и
%b×%B (реально занятые блоки) — см. также disk-usage.
Симлинки в Linux почти всегда показывают 777 — эти права не влияют на
доступ к цели, права проверяются у файла назначения. Смотри их через
stat -L file, а не stat file.
Есть неточность? Сообщить об ошибке в статье