使用命令行,我想要创建一个名称中包含今天日期的日志文件(例如,今天是 2011 年 5 月 17 日,因此文件名必须是log051711
)。
我知道如何创建文件(touch filename
),但我不知道如何获取今天的日期。我查看了手册date
,但似乎我无法真正格式化其输出?
任何帮助,将不胜感激。
答案1
您可以使用“+FORMAT”参数格式化输出,例如
touch "log$(date +'%m%d%y')"
请参阅手册页以了解可以在 FORMAT 中使用的序列。
答案2
运行命令
echo "myfilename-"`date +"%d-%m-%Y"`
给出以下输出:
myfilename-21-02-2014
答案3
可能的解决方案之一:
date +log%y%m%d | xargs touch
创建log111017
答案4
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