Was ist das Änderungsdatum für Berichte in Verzeichnissen in der Bash-Shell?


7

Wenn ich ls -lin der Bash-Shell ausgeführt werde, wird eine Änderungszeit für Dateien und Verzeichnisse aufgeführt. Wie in diesem Thread erwähnt , spiegelt die Änderungszeit für Verzeichnisse nicht den gesamten Inhalt wider. Es scheint auch nicht von der Änderung des Verzeichnisnamens betroffen zu sein. Was genau spiegelt die Änderungszeit für ein Verzeichnis wider?

Ist es die letzte Änderungszeit einer Datei (oder eines Verzeichnisses) in der obersten Ebene des Verzeichnisses?

Antworten:


9

Beachten Sie, dass ein Verzeichnis unter Unix die darin enthaltenen Dateien nicht "enthält". Es enthält vielmehr Links zu ihnen. link(2)Weitere Informationen finden Sie im Systemaufruf.

Dies bedeutet, dass der "direkte" Inhalt eines Verzeichnisses eine Liste von Dateinamen und entsprechenden i-Nummern ist . Das Änderungsdatum des Verzeichnisses gibt daher an, wann immer sich diese Liste ändert. Operationen, die solche Änderungen verursachen würden, würden Folgendes umfassen, sind aber nicht notwendigerweise darauf beschränkt:

  • Erstellen einer neuen Datei im Verzeichnis
  • Entfernen (oder besser gesagt unlink(2)) einer Datei aus dem Verzeichnis
  • Umbenennen einer Datei im Verzeichnis
  • Verknüpfen einer Datei an anderer Stelle im Verzeichnis

3

Stellen Sie sich das Verzeichnis als eine einfache Datei vor, die eine Liste anderer Dateien enthält. Wenn Sie den Inhalt ändern (Dateien umbenennen, enthaltene Dateien hinzufügen oder entfernen), ändert sich die Änderungszeit eines Verzeichnisses.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.