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

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

Операционная система Linux отслеживает три метки времени для каждого файла в вашей системе. Эти отметки времени позволяют узнать, когда последний раз обновлялся файл. Но что все они означают? А как узнать это время для файла? Есть ли разница в каталогах?





Понимание atime, ctime и mtime может ответить на все эти вопросы. Это три отметки времени, которые отслеживают файловые системы Unix. Если вам когда-нибудь понадобится узнать подробности о том, что и когда изменилось, читайте дальше.





Что такое три метки времени Unix?

С каждым файлом связаны три отметки времени. Linux хранит их в Формат времени Unix который измеряет секунды с начала эпохи. Эти три отметки времени обычно называются atime, ctime и mtime.





В время является наиболее распространенным и часто наиболее полезным. Это означает измененное время . Это время последней записи содержимого файла на диск.

Немного отличается ctime что означает Время смены . Эта временная метка отслеживает изменения метаданных, такие как права собственности и разрешения. Он включает в себя переименование файла - по крайней мере, в типичных современных ОС Linux. Но он также обновляется при изменении содержимого файла, поэтому он всегда актуален, как и mtime.



Третья отметка времени - это время , в котором хранится время последнего обращения к файлу.

Контроллер xbox one не подключается к ПК

Как метки времени применяются к каталогам

Каталог Linux - это, по сути, список файлов в этом каталоге. Таким образом, создание файла внутри каталога обновит mtime этого каталога. Список файлов в каталоге с помощью ls команда, например, обновляет время доступа. И, как и в случае с файлом, изменение разрешений или имени каталога обновляет его ctime.





А как насчет времени создания?

Вы можете удивиться, узнав, что Linux просто не отслеживает время создания. Вы можете изначально предположить, что ctime означает время создания. Точно так же вы можете подумать об этом как о очень полезной вещи, которую нужно выяснить.

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





Как просмотреть разные отметки времени

Самый простой способ получить информацию о метке времени - использовать в ls команда . Длинный формат по умолчанию показывает детали для mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Вместо этого вы можете отобразить время, используя -u флаг:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Последняя строка подтверждает, что mtime этого файла отличается от atime. Наконец, используйте -c флаг для просмотра ctime:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

На этот раз мы подтверждаем, что все три раза разные и правильные: мы изменили, затем открыли, а затем изменили файл в указанном порядке.

Альтернативой ls является штат команда. Эта команда отображает низкоуровневую информацию из индексного дескриптора файла. Это упрощает проверку всех трех раз одновременно. Это также позволяет обойти проблему неинтуитивного -u флаг. Вот пример вывода для того же файла:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

Как обновить отметки времени

В трогать Команда изменяет время модификации и доступа к файлу. Это также удобный способ создания пустого файла, который он сделает, если файл еще не существует:

обновить Windows XP до Windows 7
touch tmp

По умолчанию он устанавливает mtime и atime на текущее время. Вы можете установить другое время с помощью -t флаг:

touch -t 202103061200 tmp

Вы также можете установить только mtime или atime с помощью а также флаги соответственно:

touch -t 202103061300 -m tmp

Обратите внимание, что ctime всегда обновляется, когда мы устанавливаем atime или mtime.

Как найти файлы по отметкам времени

В найти команда - это еще один инструмент, который работает с отметками времени. Он может фильтровать файлы по времени atime, ctime или mtime. Например:

find . -amin 15

найдет файлы, к которым обращались ровно 15 минут назад, при этом:

find . -mtime -2

найдет файлы, измененные за последние два дня.

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

Метка времени файла, на которую чаще всего ссылаются, - это mtime. Например, это дата и время, которые отображаются в списке файлов. Но две другие отметки времени также могут быть полезны, если вы понимаете, о чем они говорят. В частности, всегда помните, что ctime представляет изменение время, а не творчество время.

Такие команды, как touch и stat, являются полезными членами набора инструментов командной строки Linux. Эти команды улучшат ваш рабочий процесс Linux, позволяя быстро создавать новые файлы.

Делиться Делиться Твитнуть Эл. адрес Памятка по командам Linux

Эта простая шпаргалка поможет вам быстро освоить терминал командной строки Linux.

как убрать вокал из песни дерзость
Читать далее Похожие темы
  • Linux
  • Управление файлами
  • Linux дистрибутив
Об авторе Бобби Джек(Опубликовано 58 статей)

Бобби - энтузиаст технологий, проработавший разработчиком программного обеспечения большую часть двух десятилетий. Он увлечен играми, работает редактором обзоров в Switch Player Magazine и занимается всеми аспектами онлайн-публикации и веб-разработки.

Ещё от Bobby Jack

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться
Категория Linux