如何在文件名中创建具有今天日期的文件

时间:2018-01-15 21:33:31

标签: linux bash

命令1:

$ touch test"date"

命令2:

$ date +"%F"
2018-01-16

我希望能够运行该命令,以便创建文件test_2018-01-16如何或可以将上述2个命令组合起来执行此操作?

$ touch test_"date"

EDIT1 - 回答

tks

这些命令

touch fred-`date +%F`
touch "test-$(date +%F)"
touch "test2_$(date +"%F %T")"

分别制作以下文件

fred-2018-01-16
test-2018-01-16
test2_2018-01-16 11:51:53

2 个答案:

答案 0 :(得分:5)

您应该使用双引号,并且需要使用command substitution评估date +"%F"

  $ touch "test_$(date +%F)"

这将创建一个空文件test_2018-01-15

双引号可帮助您创建单个文件,其中date命令的某些选项将包含空格。

例如,touch test_$(date)会创建多个文件,而touch "test_$(date)"则不会。

正如OP指出的那样,当使用多个格式选项时,需要在格式选项周围添加额外的引号"

touch "test_$(date +"%F %T")" 

答案 1 :(得分:1)

在我的世界(与Bash)中:

touch fred-`date +%F`

其中'fred-'是前缀,teh date命令提供后缀