Wie kann ich überprüfen, ob das file2
zuletzt geändert wurde file1
?
In diesem Beispiel perl
wurde vor kurzem geändert als stack
. Gibt es einen Bash- oder Linux-Befehl, mit dem diese Dateien basierend auf der Änderungszeit verglichen werden können ?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
-ot
"älter als".Entnommen aus " Man Test ". Auszug:
quelle
Ein anderer Weg dies zu tun:
Gibt null zurück, wenn file2 älter oder gleich alt wie file1 ist. Es gibt den Namen (und das Verzeichnis) von Datei2 zurück, wenn es neuer ist.
Beachten Sie, dass Linux nicht nachverfolgt, wann Dateien erstellt wurden. Diese Tests beziehen sich auf das Datum und die Uhrzeit der letzten Änderung.
quelle
ctime
keine Erstellungszeit. Dies ist die Inode-Änderungszeit und wird aktualisiert, wenn die Dateiattribute wie Eigentümer oder Berechtigungen geändert werden oder wenn Sie die Datei ändern. Einige Dateisysteme unterstützen die Geburtszeit, der Kernel jedoch nicht. Statistik zeigt eine leere Geburtszeit. Siehe unix.stackexchange.com/a/91200. Beachten Sie, dass OS X die Geburtszeit unterstütztstat -f %SB filename
debugfs
Sie die Erstellungszeit (Geburtszeit) unter Linux anzeigen können .Wenn Sie detailliertere Informationen wünschen, können Sie den
stat
Befehl verwendenquelle
Wenn das Ergebnis> 0 ist, ist die erste Datei neuer. (Neuer in Bezug auf die letzte Änderung, nicht die Erstellungszeit, die unter Linux gespeichert ist).
quelle
Laut diesem Link speichert Unix kein Erstellungsdatum. http://www.issociate.de/board/post/302628/How_to_check_file_creation_date.html
Speichert aber den letzten Zugriff.
für den letzten Zugriff
ls zeigt jede Datei in einer neuen Zeile an.
ls -t zeigt die neueste Datei in der ersten Zeile usw. an.
Mit sed können Sie die erste Zeile auswählen.
ls -t php.exe php.ini | sed -n '1p' php.ini
tun könnte ,
-lt
es gibt die Gesamt in der ersten Zeile , obwohl Sie das sehen werden , wenn Sie keine Dateien spezifizieren .. und es das Verzeichnis ist .. dann, so wählen Sie die zweite Zeile wie$ls -lt | sed -n '2p'
Ein guter wäre
oder
Zeigt die ersten 10 Zeilen in der Reihenfolge an, in der die erste Datei zuerst geändert wurde, und Sie können sehen, um welche es sich handelt
quelle
-t
ist Änderungszeit;-u
ist ZugriffszeitHier ist ein kleines Skript, das ich gemacht habe:
quelle