Временные метки файлов Linux: atime, ctime, mtime

Каждый файл в Linux содержит три временные метки:

  • Access timestamp (atime) — время получения последнего доступа к файлу
  • Modified timestamp (mtime) — время последнего изменения содержимого файла
  • Change timestamp (ctime) — время последнего изменения метаданных файла

Для получения информации про эти метки воспользуемся командой stat:

user@server:~$ touch text.txt
user@server:~$ stat text.txt 
  File: text.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 2ah/42d	Inode: 2005276     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   petro)   Gid: ( 1003/   petro)
Access: 2023-11-04 20:44:12.338153174 +0500
Modify: 2023-11-04 20:44:12.338153174 +0500
Change: 2023-11-04 20:44:12.338153174 +0500
 Birth: 2023-11-04 20:44:12.338153174 +0500
1
2
3
4
5
6
7
8
9
10

Все временные метки содержат одинаковое значение. Команда touch, кроме создания файла, так же обновляет значение всех временных меток. Попробуем вызвать её ещё раз:

user@server:~$ touch text.txt
user@server:~$ stat text.txt 
  File: text.txt
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: 2ah/42d	Inode: 2005276     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   petro)   Gid: ( 1003/   petro)
Access: 2023-11-04 20:47:47.171490511 +0500
Modify: 2023-11-04 20:47:47.171490511 +0500
Change: 2023-11-04 20:47:47.171490511 +0500
 Birth: 2023-11-04 20:44:12.338153174 +0500
1
2
3
4
5
6
7
8
9
10

Время создания файла не изменилось, зато все остальные метки изменились. Допишем в файл данные и проверим метки времени.

user@server:~$ echo text >> text.txt
user@server:~$ stat text.txt 
  File: text.txt
  Size: 5         	Blocks: 8          IO Block: 4096   regular file
Device: 2ah/42d	Inode: 2005276     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   petro)   Gid: ( 1003/   petro)
Access: 2023-11-04 20:47:47.171490511 +0500
Modify: 2023-11-04 20:51:27.904827845 +0500
Change: 2023-11-04 20:51:27.904827845 +0500
 Birth: 2023-11-04 20:44:12.338153174 +0500
1
2
3
4
5
6
7
8
9
10

Изменилось время изменения содержимого и метаданных. Теперь попробуем изменить только метаданные файла.

user@server:~$ chmod +w text.txt
user@server:~$ stat text.txt 
  File: text.txt
  Size: 5         	Blocks: 8          IO Block: 4096   regular file
Device: 2ah/42d	Inode: 2005276     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   petro)   Gid: ( 1003/   petro)
Access: 2023-11-04 20:47:47.171490511 +0500
Modify: 2023-11-04 20:51:27.904827845 +0500
Change: 2023-11-04 20:56:56.424833839 +0500
 Birth: 2023-11-04 20:44:12.338153174 +0500
1
2
3
4
5
6
7
8
9
10

Изменилось только ctime.

Можно заметить, что операции чтения, например, cat text.txt не влияют на atime. Это связано с тем, что изменение этого параметра отключено по-умолчанию из-за нагрузки на дискopen in new window — каждое чтение диска требует записи на диск.

Последниее изменение: 04.11.2023, 16:07:59