Часто путаетесь в modify и change? Я - тоже. Поэтому сделал небольшую шпаргалку по выводу stat и значению каждой метки.
▪️ Команда для просмотра полной информации о файле:
stat file.txt
Пример вывода:
File: file.txt
Size: 3 Blocks: 8 IO Block: 4096 regular file
Device: fe00h/65024d Inode: 657571 Links: 1
Access: 2025-08-22 00:31:39.446518364 +0300
Modify: 2025-08-22 00:30:55.460753550 +0300
Change: 2025-08-22 00:30:55.460753550 +0300
Birth: 2025-08-22 00:30:45.778142819 +0300
▪️ Разбор полей:
1️⃣ Birth (crtime) - время создания иноды. Показывается не на всех файловых системах. Например, ext4 и xfs поддерживают, но не гарантированно. Это именно момент физического создания файла.
2️⃣ Access (atime) - время последнего доступа к файлу (чтение, просмотр).
⚠️ Влияет параметр монтирования:
noatime - метка не обновляется вовсе;relatime (по умолчанию) - обновляется, если: прошло более 24 часов с последнего доступа; atime < mtime или ctime.Проверьте сами:
cat file.txt
stat file.txt # atime обновится
cat file.txt
stat file.txt # atime НЕ обновится, если прошло меньше 24ч
3️⃣ Modify (mtime) - изменение содержимого файла (например, записали новые данные).
4️⃣ Change (ctime) - изменение метаданных файла: прав, владельца, ссылок и т.д. Например:
chmod 644 file.txt
# изменится только ctime, mtime останется прежним
🌟 Частая путаница:
На слух change и modify кажутся синонимами, но это совершенно разные вещи в контексте файловой системы. mtime - это про СОДЕРЖИМОЕ, ctime - про ОБОЛОЧКУ (метаданные).
▪️ Когда это важно? Например, при использовании find:
# Найти файлы, измененные по содержимому за последние 2 дня
find . -mtime -2
# Найти файлы с измененными правами/владельцем за последние 2 дня
find . -ctime -2
Полезная привычка - точно понимать, какой таймштамп используется в вашей задаче: доступ, изменение содержимого или метаданных.
#linux #files
🧑💻 NetworkAdmin