2012-04-17 8 views
7

Wie erhalte ich das Datum der letzten Änderung eines Verzeichnisses im Terminal?Datum der letzten Änderung eines Verzeichnisses in OSX

+0

Können Sie die Ausgabe von 'ls -ld posten. 'von innerhalb Ihres Verzeichnisses? Verschiedene Versionen von 'ls' verwenden unterschiedliche Datums- und Uhrzeitformate in der Ausgabe – Alex

+0

drwx ------ @ 52 userid staff 1768 Apr 17 11:25 – user754905

Antwort

9

Wenn Sie nur sonst

stat --printf='%y\n' directory_name 

das Änderungsdatum (mtime) und nichts bekommen wollen oder , für das Datum in Sekunden seit der Epoche:

stat --printf='%Y\n' directory_name 

ist dies einfacher, effizienter und robuster als Lösungen mit ls/cut/grep/awk/find etc

bearbeiten

Die oben geschrieben wurde, bevor die OP erwähnt, dass dies für OSX in den Kommentaren unten.

Das OP kam zu einer Lösung mit stat/date, und ich befürworte die Lösung, also füge ich es hier hinzu.

Zuerst wird die stat

stat -f "%m" /path/test.app 

auf die mtime das Verzeichnis erhalten, wickeln Sie es dann in einem date es im gewünschten Format zu bekommen

date -j -f "%s" "$(stat -f "%m" /path/test.app)" +"%Y/%m/%d %T" 
+1

stat: illegale Option - - – user754905

+1

@ user754905 welches OS? OSX? versuche '--format =% y', oder schau dir 'man 1 stat' an – je4d

+0

Wenn ich nur stat mache, bekomme ich folgendes: 234881028 33275326 drwxr-xr-x 3 root staff 0 102" Apr 17 12:02:42 2012 "" 22. März 15:05:11 2012 "" Apr 17 11:25:37 2012 "" 22. März 15:05:11 2012 "4096 0 0 /Users/userid/Library/test/test.app/ – user754905

1

Rekursiv:

ls -Rlt | head -n 2 | cut -d ' ' -f10-12 

Nicht-rekursive:

ls -lt | head -n 2 | cut -d ' ' -f10-12 
3
ls -lcdoq your_directory | awk '{print $5" "$6}' 
Verwandte Themen