🐧 Как отредактировать файл, не меняя его временной метки на Linux |

🐧 Как отредактировать файл, не меняя его временной метки на Linux

Мануал

Как вы, возможно, знаете, метки времени «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.

Как вы уже догадались, временные метки основного файла изменятся.

Наконец, скопируйте временные метки нового файла, например, itsecforu.timestamp, в основной файл:
$ touch -r itsecforu.timestamp itsecforu.txt

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

Резюме

Создайте новый файл с такими же временными метками, что и основной файл, с помощью команды touch, внесите изменения в основной файл и установите временные метки нового файла на основной файл с параметром -r.

Спонсор данной статьи – https://youproxy.ru/

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий