Как вы, возможно, знаете, метки времени «access time» и «modify time» файла будут изменены на текущее время после того, как файл будет отредактирован или изменен.
Иногда вам может потребоваться сохранить старые метки времени по какой-то причине даже после редактирования или изменения файлов.
В этом кратком руководстве объясняется, как отредактировать файл без изменения его временных меток в системах Linux.
Редактируем файл без изменения его временной метки на Linux
Временную метку файла можно обновить с помощью команды touch.
Отметки времени также обновляются в тех случаях, когда мы вручную добавляем содержимое в файл или удаляем из него данные.
Если вы хотите изменить содержимое файлов без изменения его временных меток, прямого способа сделать это нет. Но это возможно!
Мы можем использовать одну из опций сенсорной команды -r (ссылка), чтобы сохранить отметки времени файла после редактирования или изменения. Параметр -r используется для установки меток времени одного файла на значения меток времени другого.
У меня есть текстовый файл с именем itsecforu.txt.
Давайте посмотрим на временные метки этого файла с помощью команды stat:
$ stat itsecforu.txt
File: itsecforu.txt
Size: 38 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0775/-rwxrwxr-x) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:47:55.992788870 +0530
Birth: -
Как уже говорилось, если мы изменим содержимое или метаданные этого файла, метки времени также изменятся.
$ touch -r itsecforu.txt itsecforu.timestamp
$ stat itsecforu.timestamp
File: itsecforu.timestamp
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 4328645 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-12 19:47:55.992788870 +0530
Modify: 2020-11-12 19:47:55.992788870 +0530
Change: 2020-11-12 19:48:48.934235300 +0530
Birth: -
Видите?
Временные метки atime и mtime обоих файлов одинаковы!
Теперь внесите изменения в основной файл, то есть itsecforu.txt.
Как вы уже догадались, временные метки основного файла изменятся.
$ touch -r itsecforu.timestamp itsecforu.txt
Теперь у основного файла старые временные метки до того момента, как он был отредактирован/изменен.
Резюме
Создайте новый файл с такими же временными метками, что и основной файл, с помощью команды touch, внесите изменения в основной файл и установите временные метки нового файла на основной файл с параметром -r.
Спонсор данной статьи – https://youproxy.ru/