Bash别名使用文件名中的当前时间戳创建文件

时间:2014-06-16 03:40:27

标签: linux bash shell unix

我正在尝试创建一个bash别名,每次调用别名时都会打印当前的UNIX时间戳。我在bash配置文件中有以下内容:

alias unix="echo "$(date +%s)""

但是,一旦bash配置文件被提供,似乎存储了当前的unix时间戳,并且每次调用别名时它都不会更改。

例如,如果我将unix别名分别调用三次10秒,则输出始终相同。如何创建一个别名来评估调用别名时的unix时间戳。这可能吗?

2 个答案:

答案 0 :(得分:10)

使用单引号来防止立即扩展。

alias unix='echo $(date +%s)'

更新:虽然我很高兴能够解释单引号和双引号之间的不同扩展行为,但另请参阅Robby Cornelissen的另一个答案,以获得更有效的方法来获得相同的结果。这里不需要echo,因为它只输出date已经输出的内容。因此,date不需要在子shell中运行。

答案 1 :(得分:2)

$ alias unix="date +%s"
$ touch myfile.$(unix)
$ touch myfile.$(unix)
$ ls -l myfile*
-rw-r--r--  1 rbednark  wheel  0 Apr 11 21:46 myfile.1460436366
-rw-r--r--  1 rbednark  wheel  0 Apr 11 21:46 myfile.1460436368