Вики / Базовые команды
stat — метаданные файла
Полная информация о файле: размер, права, владелец, времена (atime/mtime/ctime), inode.
stat показывает метаданные файла, которых не видно в ls: точные времена,
inode, число ссылок, права в восьмеричном виде, владельца и группу.
Незаменим при разборе «почему служба не читает файл» и «когда это меняли».
stat file.conf # вся информация
stat -c '%A %U:%G %s %n' file # выбрать поля: права, владелец:группа, размер, имя
stat -c '%a' file # права в ВОСЬМЕРИЧНОМ виде (например 644)
stat -c '%Y' file # mtime как unix-время (удобно в скриптах)
stat -f -c '%T' / # тип файловой системы корня
stat --printf='%n %s байт\n' *.log
Частые форматные поля для -c:
| Поле | Значение |
|---|---|
%n |
имя |
%s |
размер в байтах |
%A / %a |
права (rwx / восьмеричные) |
%U / %G |
владелец / группа |
%y / %Y |
mtime (человекочитаемо / unix) |
%i |
номер inode |
%h |
число жёстких ссылок |
- atime (
%x) — последний доступ (чтение). Часто отключён (noatime) ради скорости. - mtime (
%y) — последнее изменение содержимого. Именно его показываетls -l. - ctime (
%z) — последнее изменение метаданных (права, владелец, переименование).
ls -l file # показывает mtime
ls -lc file # показывает ctime
ls -lu file # показывает atime
«Я не менял файл, а mtime свежий»
Файл перезаписали (редактор сохраняет заново) или процесс дописал. ctime
покажет, трогали ли права/владельца отдельно от содержимого.
Размер в ls -l большой, а место не занято
Разрежённый файл (sparse). Сравни stat -c '%s' (логический размер) и
%b×%B (реально занятые блоки) — см. также disk-usage.
stat file # всё
stat -c '%a %U:%G %n' file # права-владелец-имя
stat -c '%Y' file # mtime (unix)
ls -lc file # ctime вместо mtime
См. также
- Базовые команды с файлами — Базовые команды
- chmod / chown — Пользователи и права
- Место на диске (df, du, inode) — Хранилище и ФС