2010-11-15 14 views
10

Ist es möglich, die Zeitausgabe von stat zu formatieren? Ich verwendeUNIX-Stat-Zeitformat

stat -c '%n %A %z' $filename 

in einem Bash-Skript, aber sein Zeitformat ist nicht das, was ich will. Ist es möglich, dieses Format im Befehl zu ändern, oder müsste ich es später manuell machen?

Ein Beispiel Ausgang folgt:

/lib drwxr-xr-x 2010-11-15 04:02:38.000000000 -0800 
+0

Ihre Frage ist nicht eindeutig, bitte aktualisieren Sie Ihre Frage mit Ihrer erwarteten Ausgabe – ajreal

+1

der Ausgang irrelevant; Ich wollte nur wissen, ob die Formatierung innerhalb von stat möglich ist. – scott77777

Antwort

6

Sie könnten versuchen, so etwas wie:

date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" 

, die Sie nur das Datum gibt. Sie können das Datumsformat Datum der Formatierungsoptionen (siehe man date), zum Beispiel:

date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" '+%F %X' 

Das ist nicht den Namen und die Berechtigungen geben, aber Sie können diese wie die Lage zu tun:

echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename) secs" '+%F %X')" 
5

Sie können einfach Streifen des Dezimalteil wie folgt aus:

stat -c '%n %A %z' "$filename" | sed 's/\(:[0-9]\{2\}\)\.[0-9]* /\1 /' 

Edit:

Hier ist ein weiterer Weg, um den Dezimalteil zu trunkieren:

stat -c '%n %A %.19z' "$filename" 

Diese am Tag lang ist 19 Zeichen abhängt: 2010-11-15 04:02:38