如何让 bash 脚本每次运行时生成一个新文件名?

如何让 bash 脚本每次运行时生成一个新文件名?

我想在.tar每周的每一天创建一个特定目录的文件。我想要实现的方法是使用 bash 脚本,每天使用 crontab 创建一个 tar 文件。

我想知道,有没有办法规范 bash 脚本生成的 tar 文件的名称?目前,每次生成文件时,它都是相同的,因为 bash 只有一个命令:tar -cvf file.tar /home/name/folder/

但我希望它根据日期略有不同,例如,,,FileTus.tar等等。FileWed.tarFileFri.tar

有没有办法通过终端命令来做到这一点?

谢谢

答案1

date命令可以以您想要的任何格式生成文本日期。然后您可以在脚本中使用它,例如:

tar -cvf File$(date +%a).tar /home/name/folder

这将生成FileMon.tarFileTue.tar如上所述。请参阅man date以了解它可以生成的不同日期格式的描述。

答案2

除了星期几,为什么不采用完整的日期格式呢?这样就不会每周都生成相同的文件名 :)

就像这样 -

nits@excalibur:~$ tar -cvf /home/nits/Desktop/File$(date +%d%B%Y).tar Music/

会产生如下输出 -

nits@excalibur:~$ ls ~/Desktop/
File14August2012.tar

对于带有时间戳的内容(如评论中所问):

nits@excalibur:~$ tar -cvf "/home/nits/Desktop/File$(date +%d%B%Y_%H:%M).tar" Music/
nits@excalibur:~$ ls ~/Desktop/
File14August2012_20:14.tar

相关内容