获取今天的日期并在文件名中使用它
使用命令行,我想在名称中创建一个包含今天日期的日志文件(例如,今天是05/17/2011,因此文件名必须是log051711
)。
我知道如何创建文件( touch filename
),但我不知道如何获得今天的日期。 我看过手册的date
,但似乎我无法真正格式化其输出?
任何帮助,将不胜感激。
您可以使用’+ FORMAT’参数格式化输出,例如
touch "log$(date +'%m%d%y')"
有关可在FORMAT中使用的序列,请参见联机帮助页。
运行命令
echo "myfilename-"`date +"%d-%m-%Y"`
将此作为输出:
myfilename-21-02-2014
其中一个可能的灵魂:
date +log%y%m%d | xargs touch
创建log111017
我相信其他人有更好的方法来做到这一点,但假设你想要每月 – 每年这应该工作:
touch log`date +%m%d%y`
并且您可以重新排序%m,%d,%Y以反映您想要的顺序。 日期的手册页告诉您有关其他格式的更多信息。
Python也可以完成这项工作。 这个小脚本如下:
#!/usr/bin/env python import time,os date=time.gmtime() month = str(date.tm_mon).zfill(2) day=str(date.tm_mday).zfill(2) year=str(date.tm_year)[-2:] fname = 'log' + month + day + year with open(fname,'a') as f: os.utime(fname,None)
这里的想法很简单:我们使用time.gmtime()
来获取当前日期,从它返回的结构中提取特定字段,将适当的字段转换为字符串,并使用结果名称创建文件名。
测试运行:
$ ls touch_log_file.py* $ ./touch_log_file.py $ ls log010317 touch_log_file.py*
在撰写本文时,它是2017年1月3日。因此,生成的文件名适当地是月,日,年 – log010317