Answers:
如果要使用当前日期时间作为文件名,则可以使用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。您可以通过在date
呼叫的格式部分中使用“%z”来获得符合ISO 8601的时区偏移量,如下所示:
$ date +"%FT%H%M%z"
2016-04-25T1030-0400
您可以date
通过指定-u
标志并在datetime字符串的末尾添加“ Z”来指示时间为UTC,从而在通话中获得UTC时间,如下所示:
$ date -u +"%FT%H%MZ"
2016-04-25T1430Z
$(date +%FT%T)
,它会给出2016-04-25T10:30:00
。