Wie Sie vielleicht wissen, werden die Zeitstempel „Zugriffszeit“ und „Änderungszeit“ einer Datei auf die aktuelle Zeit geändert, nachdem die Datei bearbeitet oder geändert wurde. Manchmal möchten Sie möglicherweise die alten Zeitstempel aus irgendeinem Grund beibehalten, selbst nachdem Sie die Dateien bearbeitet oder geändert haben. Diese kurze Anleitung erklärt, wie Sie eine Datei bearbeiten, ohne ihre Zeitstempel in Linux zu ändern.
Wenn Sie nicht viel über Linux-Dateizeitstempel wissen, lesen Sie die folgende Anleitung.
- Linux-Dateizeitstempel mit Beispielen erklärt
Eine Datei bearbeiten, ohne ihre Zeitstempel in Linux zu ändern
Die Zeitstempel einer Datei können mit touch
aktualisiert werden Befehl. Die Zeitstempel werden auch aktualisiert, wenn wir manuell Inhalte zu einer Datei hinzufügen oder Daten daraus entfernen. Wenn Sie den Inhalt von Dateien ändern möchten, ohne ihre Zeitstempel zu ändern, gibt es keine direkte Möglichkeit, dies zu tun. Aber es ist möglich!
Wir können einen der touch
verwenden Befehlsoption -r
(Referenz), um Dateizeitstempel nach dem Bearbeiten oder Ändern beizubehalten. Das -r
Option wird verwendet, um die Zeitstempel einer Datei auf die Zeitstempelwerte einer anderen Datei zu setzen.
Ich habe eine Textdatei namens ostechnix.txt
. Schauen wir uns die Zeitstempel dieser Datei mit stat
an Befehl:
$ stat ostechnix.txt
File: ostechnix.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: -
Wie bereits erwähnt, ändern sich auch die Zeitstempel, wenn wir den Inhalt oder die Metadaten dieser Datei ändern.
Erstellen Sie nun eine neue, leere Datei, zum Beispiel ostechnix.timestamp
, mit denselben Zeitstempeln wie ostechnix.txt
Datei mit touch
Befehl:
$ touch -r ostechnix.txt ostechnix.timestamp
Überprüfen Sie die Zeitstempel der neuen Datei:
$ stat ostechnix.timestamp
File: ostechnix.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: -
Sehen? Die Zeit beider Dateien und mtime Zeitstempel sind gleich!
Nehmen Sie nun die Änderungen in der Hauptdatei vor, also ostechnix.txt
. Wie Sie vermutet haben, werden sich die Zeitstempel der Hauptdatei ändern.
Kopieren Sie schließlich die Zeitstempel der neuen Datei, z. B. ostechnix.timestamp
zur Hauptdatei:
$ touch -r ostechnix.timestamp ostechnix.txt
Jetzt hat die Hauptdatei ihre alten Zeitstempel, bevor sie bearbeitet/geändert wurde.
Bitte beachten Sie, dass wir die Zeitstempel der Änderungszeit (ctime) nicht beibehalten können. Es wird immer auf die aktuelle Uhrzeit aktualisiert.
TL;DR
Erstellen Sie mit touch
eine neue Datei mit denselben Zeitstempeln wie die Hauptdatei Befehl, nehmen Sie die Änderungen in der Hauptdatei vor und setzen Sie die Zeitstempel der neuen Datei mit -r
auf die Hauptdatei Option.
Hoffe das hilft.