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.