2012-08-29 14 views
15

Nel mio script bash su mac (snow leopard) ho un percorso e un nome file, e ho bisogno di ottenere la data/ora modificata di quel file. Ho trovato che potevo fare:
stat -f "%m" $MYFILEformattato data/ora del file su mac bash?

Tuttavia, ciò restituisce ciò che presumo sia epoca data/ora. Ho bisogno della data/ora formattata: YYYYMMDDThhmmss. Ho trovato tutti i tipi di opzioni (come date) che apparentemente dipendono da GNU, che sul mio Mac non ho.

Qual è il modo standard per ottenere la data/ora di un file modificato in un formato specificato dall'utente su bas (BSD?). O almeno, una funzione di formattazione di data/ora che posso passare il risultato della mia chiamata stat sopra a.

risposta

28

In realtà è piuttosto semplice, ma abbastanza diverso da GNU date che è in nessun posto vicino ovvio:

date -r $TIMESTAMP +%Y%m%dT%H%M%S 

Per arrivare stat a fare la formattazione:

stat -f "%Sm" -t "%Y%m%dT%H%M%S" FILE 
+2

grazie! Wow, vorrei averlo chiesto ore fa! –

+1

Finalmente un semplice, dritto al punto, nessuna risposta pomposa ed efficace a questa domanda! Non riesco a credere a quante persone pensano che mi interessi davvero imparare tutti i 1.000 modificatori di comandi di data o di data ... basta dare il comando che funziona e basta !! MOLTE GRAZIE! –

+0

wow, ho letto "man stat" e non riuscivo a capirlo. – wisbucky