Dieses Tutorial erklärt die Arten von Linux-Dateizeitstempeln und wie Sie die Zeitstempel einer Datei mit touch
anzeigen und ändern Befehl mit Beispielen.
Eine kurze Einführung in Linux-Dateizeitstempel
Unter Linux und Unix im Allgemeinen hat jede Datei drei Arten von Zeitstempeln, nämlich atime (Zugriffszeit), mtime (Änderungszeit) und ctime (Zeit ändern). Wie der Name schon sagt, werden die Zeitstempel verwendet, um herauszufinden, wann auf eine Datei zugegriffen, sie geändert und geändert wurde.
Der Zeitstempel der Zugriffszeit (oder kurz atime) ist das letzte Mal, dass eine Datei gelesen wurde. Beispielsweise haben Sie möglicherweise die Datei geöffnet. Auf die Datei wurde möglicherweise von einem anderen Programm oder einem Remote-Computer zugegriffen. Möglicherweise haben Sie den Inhalt einer Datei mit einem Befehl gelesen (z. B. cat
Befehl) oder ein Programm (z.B. gedit, vim etc.). Die Datei wird weder bearbeitet noch modifiziert. Es wurde nur von Ihnen oder einem anderen Benutzer von einem entfernten System aus darauf zugegriffen.
Der Zeitstempel der Änderungszeit (oder mtime) gibt an, wann eine Datei (oder ein Verzeichnis) zuletzt geändert wurde. Mit anderen Worten, mtime gibt die Zeit an, zu der der Inhalt einer Datei geändert wurde. Beispielsweise haben Sie möglicherweise etwas in der Datei hinzugefügt oder etwas aus der Datei gelöscht oder den Inhalt der Datei geändert.
Ein Zeitstempel der Änderungszeit (oder ctime) zeigt das letzte Mal an, wann der Dateiinhalt oder die Dateimetadaten (d. h. Dateiattribute wie Dateieigentümerschaft, Dateiberechtigungen oder Gruppe) geändert wurden.
Zusammenfassend
- atime - gibt die Zeit des letzten Zugriffs an Datei zum Lesen von Inhalten.
- mtime - gibt die Zeit der letzten Änderung an Inhalt ablegen.
- ctime - gibt die Zeit der letzten Änderung an zum Ablegen von Inhalten oder Ablegen von Metadaten (Besitzer, Gruppe oder Berechtigungen).
Die Zeitstempel können in verschiedenen Situationen hilfreich sein. Hier sind einige Anwendungsfälle für Zeitstempel:
- Suchen und sortieren Sie Dateien basierend auf der Zugriffs- oder Änderungszeit.
- Suchen und löschen Sie Dateien, die älter als X Tage sind. Nützlich, um alte Dateien auf Ihrer Festplatte zu bereinigen.
- Überprüfen Sie, wann eine Konfigurationsdatei geändert wurde.
- Überprüfen Sie, ob auf eine Datei zugegriffen wurde.
- Überprüfen Sie, ob ein Verzeichnis aktualisiert wurde.
- Dateien finden, die älter oder neuer als X Tage sind.
Linux-Dateizeitstempel mit stat
anzeigen und ls
Befehle
Wir können die Dateizeitstempel in Linux mit stat
anzeigen Befehl. Laut Manpages ist die stat
Der Befehl zeigt den Datei- oder Dateisystemstatus in Linux an. Der stat-Befehl ist Teil der GNU Coreutils
, also machen wir uns nicht die Mühe, es zu installieren.
Lassen Sie uns nun die Zeitstempel einer Textdatei mit dem Namen ostechnix.txt
überprüfen mit stat
Befehl:
$ stat ostechnix.txt
Beispielausgabe:
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:31:01.484504149 +0530
Modify: 2020-11-11 17:31:01.484504149 +0530
Change: 2020-11-11 17:31:01.484504149 +0530
Birth: -

Die letzten drei Zeilen in der obigen Ausgabe zeigen die Zeitstempel für Zugriffszeit, Änderungszeit bzw. Änderungszeit. Wenn wir einfach eine neue Datei erstellen, sind alle Zeitstempel gleich.
Haben Sie die Zeile "Birth:
" bemerkt " am Ende der Ausgabe? Es gibt den Zeitstempel der Dateierstellung an. Der POSIX-Standard definiert keinen Zeitstempel für die Dateierstellung. Einige Dateisysteme (z. B. ext4, JFS, Btrfs) speichern diesen Wert, aber derzeit gibt es keine Linux-Kernel-API um darauf zuzugreifen. Wir sehen also einen Bindestrich "-" anstelle eines Zeitstempels in der Zeile "Geburt:".
Sie können die Zeitstempel atime, mtime und ctime auch einzeln mit ls
abrufen Befehl.
Um den Zeitstempel der Änderungszeit (mtime) anzuzeigen, verwenden Sie ls -l
Befehl:
$ ls -l ostechnix.txt
-rw-rw-r-- 1 sk sk 21 Nov 11 17:31 ostechnix.txt
Um den Zeitstempel der Änderungszeit (ctime) anzuzeigen, führen Sie ls -lc
aus Befehl:
$ ls -lc ostechnix.txt
-rw-rw-r-- 1 sk sk 21 Nov 11 17:31 ostechnix.txt
Hier der c
Flag wird verwendet, um die Zeit der letzten Änderung an Dateimetadaten oder Dateiattributen anzuzeigen.
Zeigen Sie den Zeitstempel der Zugriffszeit (atime) mit ls -lu
an Befehl:
$ ls -lu ostechnix.txt
-rw-rw-r-- 1 sk sk 21 Nov 11 17:31 ostechnix.txt
Hier das u
Flag zeigt den Zeitpunkt des letzten Zugriffs auf die Datei an.

Linux-Dateizeitstempel mit touch
ändern Befehl
Die touch
Der Befehl wird verwendet, um die Dateizeitstempel zu ändern und neue, leere Dateien in Linux zu erstellen. Genau wie stat
Befehl, die touch
Der Befehl ist auch Teil von GNU coreutils
, sodass Sie es auch nicht installieren müssen.
Bevor wir die Zeitstempel ändern, lassen Sie uns die aktuellen Zeitstempel der Datei mit dem Namen ostechnix.txt
abrufen als Referenz:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:31:01.484504149 +0530
Modify: 2020-11-11 17:31:01.484504149 +0530
Change: 2020-11-11 17:31:01.484504149 +0530
Birth: -
Wie Sie in der obigen Ausgabe sehen können, ist die Datei ostechnix.txt
zugegriffen wurde. am selben Datum und zur selben Uhrzeit modifiziert und geändert, d. h. am 11. November 2020 um 17:31:01 Uhr.
Lassen Sie uns die Zeitstempel dieser Datei mit touch
ändern Befehl wie unten:
$ touch ostechnix.txt
Der obige Befehl ändert alle Zeitstempel (d. h. atime, mtime und ctime) in die aktuelle Zeit Ihres Computers.
Schauen wir uns nun die Zeitstempel der Datei mit stat
an Befehl:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:39:59.430610787 +0530
Modify: 2020-11-11 17:39:59.430610787 +0530
Change: 2020-11-11 17:39:59.430610787 +0530
Birth: -

Sehen? Alle Zeitstempel wurden auf die aktuelle Zeit meines Systems geändert, d. h. 2020-11-10 17:51:02
.
Es ist auch möglich, einzelne Zeitstempel separat zu ändern. Beispielsweise können Sie mit -a
nur den Zeitstempel der Zugriffszeit (atime) ändern Flagge:
$ touch -a ostechnix.txt
Der obige Befehl setzt den Zeitstempel der Zugriffszeit auf die aktuelle Zeit.
Überprüfen Sie nun den Zeitstempel von ostechnix.txt
Datei mit stat
Befehl:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:43:46.555428706 +0530
Modify: 2020-11-11 17:39:59.430610787 +0530
Change: 2020-11-11 17:43:46.555428706 +0530
Birth: -

Wie Sie in der obigen Ausgabe sehen, wird die Zugriffszeit auf die aktuelle Zeit geändert. Die Änderungszeit wird ebenfalls aktualisiert.
Um nur den Zeitstempel der Änderungszeit (mtime) zu ändern, verwenden Sie -m
Flagge:
$ touch -m ostechnix.txt
Überprüfen Sie mit stat
, ob sich die mtime geändert hat Befehl:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:43:46.555428706 +0530
Modify: 2020-11-11 17:47:17.577722187 +0530
Change: 2020-11-11 17:47:17.577722187 +0530
Birth: -

Jetzt haben sich die Zeitstempel von mtime und ctime geändert, während atime unverändert geblieben ist.
Wie Sie vielleicht bemerkt haben, wird auch die ctime aktualisiert, wenn wir die Zugriffszeit oder Änderungszeit ändern.
Wenn Sie die Zeitstempel atime und mtime gleichzeitig ändern möchten, verwenden Sie -d
Option.
$ touch -d "2020-11-11 17:50:01" ostechnix.txt
Überprüfen Sie mit stat
, ob die Zeitstempel atime und mtime geändert wurden oder nicht Befehl:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:50:01.000000000 +0530
Modify: 2020-11-11 17:50:01.000000000 +0530
Change: 2020-11-11 17:51:17.024213698 +0530
Birth: -

Wir haben jetzt die Zugriffszeit und die Änderungszeit auf eine bestimmte Zeit eingestellt, z. B. 2020-11-11 17:50:01
. Und der ctime-Zeitstempel wurde auch auf die aktuelle Zeit aktualisiert.
Es ist auch möglich, mit -t
anstelle der aktuellen Zeit einen bestimmten Zeitstempel zu verwenden auch kennzeichnen:
$ touch -t 2011111754 ostechnix.txt
Dieser Befehl setzt die Zeitstempel atime und mtime auf 2020-11-11 17:54:00
. Überprüfen Sie es mit stat
Befehl wie unten:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 4351679 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 1000/ sk) Gid: ( 1000/ sk)
Access: 2020-11-11 17:54:00.000000000 +0530
Modify: 2020-11-11 17:54:00.000000000 +0530
Change: 2020-11-11 17:56:20.844405239 +0530
Birth: -
Wie bereits erwähnt, wird ctime aktualisiert, wenn atime und mtime geändert werden. Wenn Sie nur den ctime-Zeitstempel ändern möchten, gibt es kein spezielles Flag in touch
Befehl. Sie müssen also die ctime manuell ändern, indem Sie die Dateimetadaten oder Dateiattribute ändern. Zum Beispiel werde ich ausführbare Berechtigungen zuweisen zu ostchnix.txt
Datei mit chmod
Befehl:
$ chmod +x ostechnix.txt
Prüfen Sie, ob ctime mit stat
aktualisiert wird Befehl:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 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-11 17:54:00.000000000 +0530
Modify: 2020-11-11 17:54:00.000000000 +0530
Change: 2020-11-11 17:57:21.022720776 +0530
Birth: -

Sehen? Der ctime-Zeitstempel hat sich geändert, die atime- und mtime-Zeiten jedoch nicht. Denn auf die Datei wird weder zugegriffen noch sie verändert. Ich habe nur die Dateiberechtigung geändert.
Ändern Sie Dateizeitstempel, indem Sie Dateien anzeigen, darauf zugreifen oder Dateien ändern
Wie bereits erwähnt, wird der Zeitstempel atime geändert, wenn wir zum Lesen auf die Datei zugreifen. Versuchen Sie, mit cat
zum Lesen auf die Datei zuzugreifen Befehl und sehen, was passiert.
$ cat ostechnix.txt
This is a text file.
Überprüfen Sie nun, ob der Zeitstempel der Zugriffszeit aktualisiert ist:
$ stat ostechnix.txt
File: ostechnix.txt
Size: 21 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-11 18:00:16.005323521 +0530
Modify: 2020-11-11 17:54:00.000000000 +0530
Change: 2020-11-11 17:57:21.022720776 +0530
Birth: -
Sehen? Der atime-Wert hat sich jetzt geändert.
Die mtime wird aktualisiert, wenn wir Daten zu einer Datei hinzufügen oder daraus entfernen.
Lassen Sie mich eine Zeile in der ostechnix.txt
hinzufügen Datei:
$ echo "modify this file" >> ostechnix.txt
Überprüfen Sie die Dateizeitstempel:
$ 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-11 18:00:16.005323521 +0530
Modify: 2020-11-11 18:01:49.072771458 +0530
Change: 2020-11-11 18:01:49.072771458 +0530
Birth: -
Da sich der Inhalt der Datei geändert hat, haben sich sowohl mtime als auch ctime geändert.
Zeitstempel für symbolische Links ändern
Standardmäßig, wenn Sie touch
verwenden Befehl auf einem symbolischen Link (oder Symlink), es wird auch die Zeitstempel der referenzierten Datei ändern.
Wenn Sie nur den Zeitstempel eines Symlinks ändern möchten, verwenden Sie -h
, (--no-dereference
) Option:
$ touch -h <path-to-symlink>
[Bonus-Tipp] Kopieren Sie Zeitstempel aus einer anderen Datei
Der Touch-Befehl hat eine Option namens -r, (--reference=)
wodurch Sie Zeitstempel von einer Datei in eine andere kopieren können.
Der folgende Befehl kopiert die Zeitstempel von Datei1 nach Datei2.
$ touch -r file1.txt file2.txt
Weitere Einzelheiten finden Sie auf den Manpages von stat
und touch
Befehle:
$ man stat
$ man touch
Schlussfolgerung
In diesem Handbuch haben wir drei Arten von Linux-Dateizeitstempeln besprochen, d. h. atime, mtime und ctime, wie Sie die Dateizeitstempel mit stat
anzeigen können und ls
Befehle und schließlich, wie man diese Dateizeitstempel mit touch
ändert Befehl. Hoffe das hilft.