Ändert sich das Verzeichnis mtime immer, wenn eine neue Datei darin erstellt wird?

12

Stimmt es immer, dass sich beim Erstellen einer neuen Datei in einem Verzeichnis die mtime des Verzeichnisses ändert?

kolypto
quelle
Dies ist ganz einfach zu testen ...
ewwhite
6
Einfach. Allerdings nicht auf allen Betriebssystemen und Dateisystemen gleichzeitig :)
kolypto

Antworten:

12

Die kurze Antwort lautet: Ja, das sollte es . Eine längere Antwort folgt.

Ein Verzeichnis ist eine spezielle Art von Datei. Der Inhalt besteht aus einer Reihe von Tupeln (Dateiname, i-Knoten) . Daher wird die mtime des Verzeichnisses immer dann aktualisiert, wenn ein Tupel hinzugefügt, entfernt oder geändert wird. Das heißt, eine Datei eines beliebigen Typs (einschließlich fester Links und Verzeichnisse) wird im Verzeichnis hinzugefügt, entfernt oder umbenannt (jedoch nicht in verschachtelten Verzeichnissen - diese sind unterschiedlich. " Dateien ").

Bitte beachten Sie, dass wenn sich die Metadaten der Datei ändern (Eigentümer, Gruppe, Modus, Zeit, Uhrzeit, Uhrzeit - gehostet in i-node ), die Uhrzeit NICHT aktualisiert wird (weder in der Datei noch in dir), sondern die Uhrzeit der Datei .

Siehe auch Basisdefinitionsband von IEEE Std 1003.1-2001, Abschnitt 4.7, Aktualisierung der Dateizeiten .

Jahr
quelle
1
Beachten Sie, dass dies nur für Dateien gilt, die direkt im betreffenden übergeordneten Verzeichnis erstellt (usw.) werden, nicht jedoch für Dateien, die in einem Verzeichnis unter dem übergeordneten Verzeichnis erstellt wurden (usw.). Vielleicht ist das für andere offensichtlich, aber für mich nicht (ich musste testen, um die Antwort zu finden).
Logidelic
1
@logidelic danke, ich habe die Antwort aktualisiert, um es klarer zu machen.
6.
Warum ändert sich die ctime des Verzeichnisses auch, wenn Sie eine neue Datei darin erstellen?
Herr Roland