Давайте поговорим о временных метках файлов. Каждый файл в Linux имеет три метки времени: метку времени
доступа или atime, измененную метку времени или mtime и измененную метку времени ctime. Метки времени
Linux содержат целое число, а не дату и время.
Это число представляет собой количество секунд, прошедших с уникальной эпохи, которая была в полночь 1 января 1970 года по
всемирному координированному времени.
Когда Linux требуется отобразить дату, он переводит это количество секунд в дату и время.
Это облегчает понимание людьми. Чтобы просмотреть эти временные метки, используйте оператор или ls
с параметрами.
Команда stat показывает статистику о файле, включая временные метки. Вы можете увидеть
время доступа, время модификации и измененное время. EXT4, которая является файловой системой по
умолчанию в большинстве дистрибутивов Linux, также выделяет место для метки времени создания файла во внутренних
структурах файловой системы.
Но в большинстве случаев это еще не реализовано. В этом примере создание или рождение файла еще не
реализовано.
Вот почему вместо этого мы видим дефис.
Давайте обсудим, что означают эти временные метки.
Время доступа или atime - это время последнего чтения файла.
Это означает, что время, когда кто-то использовал программу для отображения содержимого файла, не имеет
значения, было ли изменено содержимое файла или нет; метка времени модификации или mtime обозначает время последнего
изменения содержимого файла.
Если кто-то использовал текстовый редактор и что-то менял внутри, файл mtime обновлялся.
И, наконец, время изменения или ctime - это время, когда были изменены некоторые метаданные, относящиеся к файлу, а не к его
содержимому.
Например, изменение прав доступа к файлам или владелец файлов обновят измененное время.
Чтобы увидеть метки времени с помощью команды ls, выполните команду ls -l или ls -lt, если вы хотите увидеть время модификации
, ls -lu, чтобы увидеть время доступа, и ls -lc, чтобы увидеть измененное время.
Иногда ls-l не отображает метку времени с максимальной точностью.
В этом примере мы знаем только месяц, день, час и минуту, когда файл был изменен в последний раз
. Чтобы увидеть всю сохраненную метку времени, включая год и секунду, используйте
параметр --full-time, например: ls -l --full-time и / etc / или каталог.
И мы видим всю метку времени.
Поговорим об изменении метки времени файла. Это полезно, когда вы хотите, чтобы программа резервного копирования включала
или исключала некоторые файлы, или когда вы просто не хотите, чтобы другие пользователи знали, что вы прочитали или изменили
файл; вы можете изменить отметку времени в файле с помощью сенсорной
команды.
Сенсорная команда также используется для создания пустого файла.
Поэтому, если файл, являющийся аргументом команды touch, не существует, touch создаст его.
Но если он существует, touch обновит временные метки файлов на текущее время компьютера.
Это содержимое текущего каталога, который является домашним каталогом пользователя.
И если я запустил touch linux.txt, он создаст файл, так как файл еще не существует.
Файл есть.
Посмотрим время модификации.
И stat linux.txt; это отметки времени файла. Кстати, в Linux
не рекомендуется использовать пробелы или другие специальные символы в именах файлов; разделите несколько
слов знаком подчеркивания или дефиса.
Но если по какой-то причине вы хотите включить пробел в имя файла, заключите имя файла
в двойные кавычки, например:
Имя файла содержит пробел.
Теперь, если я снова запустил touch linux.txt, он обновит все три отметки времени файла до текущего времени.
touch linux.txt и stat linux.txt - это новые временные метки.
Взглянуть!
Они обновлены.
14:29 и сейчас 14:30. Если вы хотите изменить только время доступа к
текущему времени, используйте параметр -a.
Итак, прикоснитесь к -a linux.txt; и stat a.txt
Обратите внимание, что время доступа было обновлено до текущего времени, время также было обновлено, потому что информация
метаданных файла, такая как atime, была изменена.
Это нормальное поведение.
Чтобы изменить отметку времени модификации, вы можете использовать ту же опцию -m: touch -m и файл
и stat linux.txt;
Посмотрите, как были изменены и mtime, и chnge time. Если вы хотите установить время доступа или время изменения
на определенное время, а не на текущее время системы, вы можете использовать параметр -d и дату и время.
Давайте изменим время модификации
на дату в прошлом: коснитесь -m и укажите дату, скажем, 2018
12 месяц
30 день, час, минуту и ​​точку над секундами.
И файл; формат новой метки времени: год,
месяц,
день, час и. секунды.
Извините, я забыл опцию -t.
Это очень важно.
И время модификации было изменено.
Если вы хотите изменить одновременно и время доступа, и время модификации, используйте -d, как
это, нажмите -d между двойными кавычками, дату в этом формате
и файл.
Были изменены и atime, и mtime.
Обратите внимание, что параметры -t и -d принимают разные форматы данных.
Вы также можете использовать параметр -r, если хотите установить метки времени одного файла на значения меток времени
другого.
Например, я создаю новый файл ubuntu.txt.
Это его временные метки, и я устанавливаю временные метки linux.txt на временные метки
ubuntu.txt.
Коснитесь linux.txt -r ubuntu.txt; ubuntu.txt - это справочный файл, а stat linux.txt 83
У них одинаковые временные метки. 84
Обратите внимание, что невозможно изменить только время изменения на конкретную метку времени, но я скажу
вам трюк.
Если вы хотите изменить только время изменения на определенное время, тогда вы установите системную дату и время
на желаемое время изменения запустите команду touch и имя файла, чтобы изменить все временные метки
на текущее время системы, а затем измените вернуть время доступа и модификации к начальным значениям.
Время изменения останется на желаемом значении.
Вы можете сделать это как домашнее задание.
Используйте команду date как для отображения текущей даты и времени, так и для установки системной даты и времени.
Это дата и время с использованием местного часового пояса, восточноевропейского времени, а date-u
отображает дату и время с использованием скоординированного универсального времени или UTC; проверьте его справочную страницу, чтобы увидеть
формат новой даты, если вы хотите его изменить.