Grundlegendes zu Linux-Dateizeitstempeln: mtime, ctime und atime

Grundlegendes zu Linux-Dateizeitstempeln: mtime, ctime und atime

Das Linux-Betriebssystem verfolgt drei Zeitstempel für jede Datei auf Ihrem System. Anhand dieser Zeitstempel können Sie feststellen, wann eine Datei zuletzt aktualisiert wurde. Aber was bedeuten sie alle? Und wie findet man diese Zeiten für eine Datei heraus? Gibt es Unterschiede bei Verzeichnissen?





Ein Verständnis von atime, ctime und mtime kann all diese Fragen beantworten. Dies sind die drei Zeitstempel, die Unix-Dateisysteme verfolgen. Wenn Sie jemals Details darüber erfahren möchten, was sich wann geändert hat, lesen Sie weiter.





Was sind die drei Unix-Zeitstempel?

Jeder Datei sind drei Zeitstempel zugeordnet. Linux speichert diese im Unix-Zeitformat die Sekunden seit der Epoche misst. Die drei Zeitstempel werden allgemein als atime, ctime und mtime bezeichnet.





Die mtime ist die gebräuchlichste und oft die nützlichste. Es steht für geänderte Zeit . Dies ist der Zeitpunkt, zu dem der Inhalt der Datei zuletzt auf die Festplatte geschrieben wurde.

Etwas anders ist die ctime welches dafür steht Zeit ändern . Dieser Zeitstempel verfolgt Metadatenänderungen wie Eigentum und Berechtigungen. Dazu gehört das Umbenennen einer Datei – zumindest auf typischen modernen Linux-Betriebssystemen. Es wird aber auch aktualisiert, wenn sich der Inhalt der Datei ändert, sodass es immer so aktuell ist wie die mtime.



Der dritte Zeitstempel ist der eine Zeit , das den letzten Zugriff auf die Datei speichert.

warum ist mein service so langsam

Wie Zeitstempel auf Verzeichnisse angewendet werden

Ein Linux-Verzeichnis ist im Wesentlichen eine Liste der Dateien in diesem Verzeichnis. Wenn Sie also eine Datei in einem Verzeichnis erstellen, wird die mtime dieses Verzeichnisses aktualisiert. Auflisten der Dateien im Verzeichnis mithilfe der ls Befehl aktualisiert beispielsweise seine Zugriffszeit. Und wie bei einer Datei aktualisiert das Ändern der Berechtigungen oder des Namens eines Verzeichnisses dessen ctime.





Was ist mit der Erstellungszeit?

Es mag Sie überraschen zu erfahren, dass Linux die Erstellungszeit einfach nicht verfolgt. Das könnte man zunächst annehmen ctime steht für Schöpfungszeit. Ebenso könnten Sie es als sehr nützlich betrachten, dies herauszufinden.

Viele Anwendungen speichern Dateien, indem sie sie jedes Mal von Grund auf neu erstellen. Dies würde die Verwendung einer Erstellungszeit irreführend machen.





So zeigen Sie die verschiedenen Zeitstempel an

Der einfachste Weg, um Zeitstempelinformationen zu erhalten, ist mit das ls Befehl . Das Standard-Langformat zeigt Details für die mtime:

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Sie können stattdessen die Zeit anzeigen, indem Sie die -u Flagge:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

Die letzte Zeile bestätigt, dass sich die mtime dieser Datei von der atime unterscheidet. Verwenden Sie schließlich die -C markieren, um ctime anzuzeigen:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

Diesmal bestätigen wir, dass alle drei Zeiten eindeutig und korrekt sind: Wir haben die Datei in dieser Reihenfolge geändert, dann darauf zugegriffen und dann geändert.

Eine Alternative zu ls ist die Zustand Befehl. Dieser Befehl zeigt Details auf niedriger Ebene aus dem Inode der Datei an. Es macht es einfacher, alle drei Male gleichzeitig zu überprüfen. Es umgeht auch das Problem des Unintuitiven -u Flagge. Hier ist eine Beispielausgabe für dieselbe Datei:

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

So aktualisieren Sie Zeitstempel

Die berühren Befehl ändert die Änderungs- und Zugriffszeiten einer Datei. Es ist auch eine bequeme Möglichkeit, eine leere Datei zu erstellen, wenn die Datei noch nicht vorhanden ist:

wie man mit Kühnheit Musik aufnimmt
touch tmp

Standardmäßig werden mtime und atime auf die aktuelle Zeit eingestellt. Sie können eine andere Zeit mit der -T Flagge:

touch -t 202103061200 tmp

Sie können auch nur mtime oder atime mit den -m und -zu Flaggen bzw.:

touch -t 202103061300 -m tmp

Beachten Sie, dass die ctime immer aktualisiert wird, wenn wir atime oder mtime festlegen.

So finden Sie Dateien anhand von Zeitstempeln

Die finden Befehl ist ein weiteres Werkzeug, das auf Zeitstempel reagiert. Es kann Dateien basierend auf atime, ctime oder mtime filtern. Zum Beispiel:

find . -amin 15

findet Dateien, auf die vor genau 15 Minuten zugegriffen wurde, während:

find . -mtime -2

findet Dateien, die in den letzten zwei Tagen geändert wurden.

Linux verfolgt jede Datei dreimal

Der Datei-Zeitstempel, auf den am häufigsten verwiesen wird, ist mtime. Dies ist beispielsweise das Datum und die Uhrzeit, die eine Dateiliste anzeigt. Aber auch die anderen beiden Zeitstempel können nützlich sein, vorausgesetzt, Sie verstehen, worauf sie sich beziehen. Denken Sie insbesondere immer daran, dass ctime für Veränderung Zeit, nicht Schaffung Zeit.

Befehle wie touch und stat sind nützliche Elemente der Linux-Befehlszeilen-Toolbox. Diese Befehle verbessern Ihren Linux-Workflow, indem Sie schnell neue Dateien erstellen.

Teilen Teilen Tweet Email Der Spickzettel für die Linux-Befehle-Referenz

Dieser einfache Spickzettel hilft Ihnen, sich in kürzester Zeit mit dem Linux-Befehlszeilenterminal vertraut zu machen.

Nintendo Switch kann keine WLAN-Verbindung herstellen
Weiter lesen Verwandte Themen
  • Linux
  • Dokumentenverwaltung
  • Linux-Distribution
Über den Autor Bobby Jack(58 veröffentlichte Artikel)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte lang als Software-Entwickler gearbeitet hat. Er hat eine Leidenschaft für Spiele, arbeitet als Rezensionsredakteur beim Switch Player Magazine und vertieft sich in alle Aspekte des Online-Publishing und der Webentwicklung.

Mehr von Bobby Jack

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren