获取今天的日期并将其用于文件名

获取今天的日期并将其用于文件名

使用命令行,我想要创建一个名称中包含今天日期的日志文件(例如,今天是 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

相关内容