Se si desidera utilizzare il datetime corrente come nome file, è possibile utilizzare date
e comandare la sostituzione .
$ md5sum /etc/mtab > "$(date +"%Y_%m_%d_%I_%M_%p").log"
Ciò comporta la 2016_04_25_10_30_AM.log
creazione del file (sebbene, con il datetime corrente) con l'hash md5 /etc/mtab
come contenuto.
Si noti che i nomi dei file che contengono i timestamp in formato 12 ore probabilmente non verranno ordinati per nome nel modo in cui si desidera che vengano ordinati. È possibile evitare questo problema utilizzando invece i timestamp in formato 24 ore.
Se non hai l'obbligo di utilizzare quel formato data specifico, potresti prendere in considerazione l'utilizzo di un formato data / ora conforme a ISO 8601. Alcuni esempi di come generare rappresentazioni datetime ISO 8601 valide includono:
$ date +"%FT%T"
2016-04-25T10:30:00
$ date +"%FT%H%M%S"
2016-04-25T103000
$ date +"%FT%H%M"
2016-04-25T1030
$ date +"%Y%m%dT%H%M"
20160425T1030
Se desideri nomi di file "più sicuri" (ad esempio, per compatibilità con Windows), puoi omettere i due punti dalla porzione temporale.
Tieni presente che tutti gli esempi sopra riportati presuppongono che l'ora del sistema locale. Se è necessaria una rappresentazione dell'ora coerente tra i fusi orari, è necessario specificare un offset del fuso orario o UTC. È possibile ottenere un offset del fuso orario conforme a ISO 8601 utilizzando "% z" nella parte del formato della date
chiamata in questo modo:
$ date +"%FT%H%M%z"
2016-04-25T1030-0400
È possibile ottenere l'ora UTC nella date
chiamata specificando il -u
flag e aggiungendo "Z" alla fine della stringa datetime per indicare che l'ora è UTC in questo modo:
$ date -u +"%FT%H%MZ"
2016-04-25T1430Z