Manipulation von Dateizeitstempeln mit touch
Der Befehl touch
ermöglicht es Ihnen nicht nur, Dateien zu erstellen, sondern auch deren Zeitstempel zu aktualisieren. Dies ist nützlich für Tests oder wenn Sie die Zeitstempel zwischen Dateien synchronisieren müssen.
Aktualisieren aller Zeitstempel
Um alle Zeitstempel (Zugriff, Änderung und Metadatenänderung) auf die aktuelle Zeit zu aktualisieren:
touch testfile.txt
Prüfen Sie die Zeitstempel:
stat testfile.txt
Ausgabe:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:45:10.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:45:10.000000000 +0000
Birth: -
Aktualisieren nur der Zugriffszeit
Um nur die Zugriffszeit zu aktualisieren:
touch -a testfile.txt
Prüfen Sie die Zeitstempel:
stat testfile.txt
Ausgabe:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:45:10.000000000 +0000
Change: 2023-05-15 14:46:15.000000000 +0000
Birth: -
Beachten Sie, dass auch die Änderungszeit der Metadaten (ctime) aktualisiert wird, da sich die Dateimetadaten geändert haben.
Aktualisieren nur der Änderungszeit
Um nur die Änderungszeit zu aktualisieren:
touch -m testfile.txt
Prüfen Sie die Zeitstempel:
stat testfile.txt
Ausgabe:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-05-15 14:46:15.000000000 +0000
Modify: 2023-05-15 14:47:20.000000000 +0000
Change: 2023-05-15 14:47:20.000000000 +0000
Birth: -
Wiederum wird auch die Änderungszeit der Metadaten aktualisiert.
Festlegen spezifischer Zeitstempel
Sie können einen bestimmten Zeitstempel mit der Option -d
in Verbindung mit touch
festlegen:
touch -d "2023-01-01 12:00:00" testfile.txt
Prüfen Sie die Zeitstempel:
stat testfile.txt
Ausgabe:
File: testfile.txt
Size: 19 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 2101099 Links: 1
Access: (0640/-rw-r-----) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:48:30.000000000 +0000
Birth: -
Dies setzt sowohl die Zugriffs- als auch die Änderungszeit auf den 1. Januar 2023, 12:00 Uhr. Die Änderungszeit der Metadaten wird immer noch auf die aktuelle Zeit aktualisiert.
Erstellen einer neuen Datei mit Zeitstempeln aus einer vorhandenen Datei
Sie können auch die Option -r
verwenden, um auf die Zeitstempel einer anderen Datei zu verweisen:
## Create a new file
touch newfile.txt
## Set its timestamps based on testfile.txt
touch -r testfile.txt newfile.txt
Prüfen Sie die Zeitstempel der neuen Datei:
stat newfile.txt
Ausgabe:
File: newfile.txt
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 2101100 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/labex) Gid: (1000/labex)
Access: 2023-01-01 12:00:00.000000000 +0000
Modify: 2023-01-01 12:00:00.000000000 +0000
Change: 2023-05-15 14:49:45.000000000 +0000
Birth: -
Die Zugriffs- und Änderungszeiten von newfile.txt
stimmen jetzt mit denen von testfile.txt
überein.