2010-11-15 15 views
10

È possibile formattare l'output temporale di stat? Sto usandoFormato ora statica UNIX

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

in uno script bash, ma il suo formato dell'ora non è quello che voglio. È possibile modificare questo formato nel comando o dovrei farlo manualmente in seguito?

Un esempio di output segue:

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

la tua domanda è ambigua, si prega di aggiornare la tua domanda con il risultato previsto – ajreal

+1

l'uscita è irrilevante; volevo solo sapere se la formattazione era possibile all'interno di stat. – scott77777

risposta

6

Si potrebbe provare qualcosa di simile:

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

che vi dà solo la data. È possibile formattare la data utilizzando le opzioni di formattazione della data (vedi man date), ad esempio:

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

Questo non ti dà il nome e le autorizzazioni, ma si può essere in grado di farlo come:

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

Si può semplicemente striscia della parte decimale in questo modo:

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

Edit:

Ecco un altro modo per troncare la parte decimale:

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

Questo dipende dalla data a 19 caratteri: 2010-11-15 04:02:38