Datum der letzten Änderung des Verzeichnisses

79

Ich frage mich, wann das Datum der letzten Änderung des Verzeichnisses geändert wird. Ich habe eine Datei in einem bestimmten Verzeichnis (über FTP) geändert, aber die LMD des Verzeichnisses hat sich nicht geändert. Wie soll es funktionieren?

Alec Smart
quelle

Antworten:

125

Die mtime (Änderungszeit) im Verzeichnis selbst ändert sich, wenn eine Datei oder ein Unterverzeichnis hinzugefügt, entfernt oder umbenannt wird.

Durch Ändern des Inhalts einer Datei innerhalb des Verzeichnisses werden weder das Verzeichnis selbst noch die geänderten Zeiten einer Datei oder eines Unterverzeichnisses aktualisiert. Wenn Sie die Berechtigungen für das Verzeichnis ändern, ändert sich die ctime, die mtime jedoch nicht.

Jonathan Leffler
quelle
2
Wird es geändert, wenn ein Unterverzeichnis geändert wird?
Flimm
6
@Flimm: Dies hängt von der Art der Änderung des Unterverzeichnisses ab. Wenn eine Datei zum Unterverzeichnis hinzugefügt oder daraus entfernt wird, dann nein. Wenn das Unterverzeichnis umbenannt wird, dann ja (da der neue Name in dem Verzeichnis gespeichert ist, in dem sich das Unterverzeichnis befindet. Was sich also wirklich ändert, ist der Eintrag im Hauptverzeichnis und nichts im Unterverzeichnis).
Jonathan Leffler
7
@Asmageddon: Wenn etwas mehrere Ebenen tief geändert wird, gibt es keine Möglichkeit zu wissen, dass ab dem Änderungszeitpunkt des Verzeichnisses mehrere Ebenen höher sind. Überlegen Sie, was dies bedeuten würde - letztendlich müsste das Stammverzeichnis jedes Mal geändert werden, wenn eine Datei irgendwo geändert wurde, sodass der Inode im Speicher ein Hotspot für jeden Prozess ist, der jemals etwas mit einer Datei tut.
Jonathan Leffler
5
@ cram2208: Erstellt Gedit eine Sicherungsdatei im Verzeichnis oder eine Sperrdatei oder ähnliches? Was passiert, wenn Sie touch somefileanstelle von verwenden gedit?
Jonathan Leffler
3
@ JonathanLeffler Gute Einsichten Ich sollte sagen, ich verstehe jetzt ganz genau, was los war. Es war eine Sicherungsdatei im Verzeichnis und nicht die Änderung der Datei an sich. Bei Verwendung von touch on the file wurde die LMD der Datei geändert, nicht jedoch des Verzeichnisses. Ich muss bei solchen Details vorsichtiger sein ...
cram2208
28

Ein Verzeichnis ist wie eine Datei, die eine Liste der darin enthaltenen Dateinamen enthält (tatsächlich haben Sie möglicherweise versehentlich ein Verzeichnis in einem Editor geöffnet, in dem Sie sehen können, dass es sich um eine meist lesbare Liste seines Inhalts handelt). Daher wird es geändert Wenn eine Datei in diesem Verzeichnis hinzugefügt, entfernt oder umbenannt wird.

Äther
quelle
1
Wird es geändert, wenn ein Unterverzeichnis geändert wird?
Flimm
1
@Flimm Es scheint nur die mtime des enthaltenen Verzeichnisses zu aktualisieren, sonst würde es bis zum Stamm sprudeln.
Nick Weaver
1
Mit welchen Editoren können Sie aus Interesse ein Verzeichnis direkt öffnen? Die meisten (gerade edund cat) scheinen sich zu beschweren oder bieten stattdessen eine Liste mit zu öffnenden Dateien an.
naught101
@ naught101 vim öffnet gerne ein Verzeichnis.
Ether
5
@Ether: Es wird kein "Verzeichnis geöffnet", wie beim tatsächlichen Lesen der Inode-Daten des Verzeichnisses (oder was auch immer auf anderen Dateisystemen gleichwertig ist). Es bietet lediglich einen Dateibrowser für dieses Verzeichnis.
naught101