2010-11-15 12 views
10

¿Es posible formatear la salida de tiempo de stat? Estoy usandoUNIX stat time format

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

en un script bash, pero su formato de tiempo no es lo que quiero. ¿Es posible cambiar este formato en el comando, o tendría que hacerlo manualmente más tarde?

un ejemplo de salida del siguiente modo:

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

su pregunta es ambigua, por favor actualice su pregunta con su salida esperada – ajreal

+1

la salida es irrelevante; Solo quería saber si el formateo era posible dentro de stat. – scott77777

Respuesta

6

Usted podría intentar algo como:

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

que le da sólo la fecha. Puede dar formato a la fecha usando las opciones de formato de fecha (véase man date), por ejemplo:

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

Esto no le da el nombre y permisos pero usted puede ser capaz de hacer eso como:

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

puede simplemente tira de la parte decimal de esta manera:

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

Editar:

Ésta es otra manera para truncar la parte decimal:

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

Esto depende de la fecha es 19 caracteres de longitud: 2010-11-15 04:02:38