Text-Processing
如何將日期和時間放在文件名中?
我正在嘗試執行一個命令,並希望將日期和時間放在輸出文件名中。
這是我想執行的範例命令。
md5sum /etc/mtab > 2016_4_25_10_30_AM.log
日期時間格式可以是任何有意義的下劃線。如果不能使用 AM 和 PM,即使是 UTC。
如果您想使用目前日期時間作為文件名,您可以使用
date
和命令替換。$ md5sum /etc/mtab > "$(date +"%Y_%m_%d_%I_%M_%p").log"
這導致文件
2016_04_25_10_30_AM.log
(儘管具有目前日期時間)以 md5 雜湊/etc/mtab
作為其內容創建。請注意,包含 12 小時格式時間戳的文件名可能不會按照您希望的方式按名稱排序。您可以改用 24 小時格式的時間戳來避免此問題。
如果您不需要使用該特定日期格式,則可以考慮使用符合 ISO 8601 的日期時間格式。如何生成有效的 ISO 8601 日期時間表示的一些範例包括:
$ 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
如果您想要“更安全”的文件名(例如,為了與 Windows 兼容),您可以省略時間部分的冒號。
請記住,以上範例均假定本地系統時間。如果您需要跨時區一致的時間表示,則應指定時區偏移量或 UTC。您可以通過在呼叫的格式部分中使用“%z”來獲得符合 ISO 8601 的時區偏移,
date
如下所示:$ date +"%FT%H%M%z" 2016-04-25T1030-0400
您可以
date
通過指定-u
標誌並將“Z”添加到日期時間字元串的末尾以指示時間是 UTC 來獲取呼叫中的 UTC 時間,如下所示:$ date -u +"%FT%H%MZ" 2016-04-25T1430Z