Посмотреть информацию о файле можно с помощью утилиты stat:
# stat file.txt File: file.txt Size: 3 Blocks: 8 IO Block: 4096 regular fileDevice: fe00h/65024d Inode: 657571 Links: 1Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)Access: 2023-08-22 00:31:39.446518364 +0300Modify: 2023-08-22 00:30:55.460753550 +0300Change: 2023-08-22 00:30:55.460753550 +0300 Birth: 2023-08-22 00:30:45.778142819 +03001️⃣ Birth (crtime). С временем создания всё понятно. Это время создания иноды файла. Нужно обязательно учитывать файловую систему. Не везде stat показывает эту информацию. Я в заметке буду иметь ввиду ext4 и xfs.
2️⃣ Access (atime). С доступом вроде бы тоже всё просто. Если вы откроете файл для просмотра и проверите его после этого командой stat, время доступа изменится на момент открытия файла. Но тут есть существенные нюансы. Метка atime зависит от опций, с которыми смонтирована файловая система.
▪ noatime, если указан этот параметр, то время доступа к файлу не обновляется при просмотре.
▪ relatime, с этим параметром обновление поля access будет только если atime меньше времени последнего изменения файла или если с предыдущего обновления прошло больше 24 часов. Этот параметр включён в набор defaults, который используется по умолчанию для монтирования файловых систем. То есть фактически вы время доступа знать не будете, если оно было чаще одного раза в последние 24 часа. Проверить это легко. Создайте файл и проверьте atime. Далее откройте файл один раз и проверьте ещё раз. Время изменится. А вот если вы проверите ещё один раз, то время не изменится, а останется то же, что было при первом просмотре.
3️⃣ Modify (mtime) - время последнего изменения содержимого файла.
4️⃣ Change (ctime) - время последнего изменения метаданных файла в файловой системе. Например, после использования утилиты chown или chmod для изменения прав и владельца файла, ctime изменится, но при этом изменения содержимого не происходит. Если в каталоге создать новый подкаталог, то ctime исходного изменится.
Лично я последние два понятия часто путаю. У меня в голове постоянно возникает ассоциация, что изменение содержимого это change. Оно и понятно, в результате перевода change и modify на русский язык получаются слова синонимы. Так что тут приходится жёстко запоминать разницу.
Чётко понимать, что значат эти обозначения, очень важно, когда используешь find для поиска с различными параметрами. Я даже в своих заметках ошибался, когда писал про это. Например, в одной из заметок ctime обозначил как время создания файла. Ну и до кучи добавлю несколько заметок про find (один, два, три). Там много полезных примеров, которые я привёл из своих шпаргалок, которые лично использую.
#linux