![如何让 bash 脚本每次运行时生成一个新文件名?](https://linux22.com/image/822619/%E5%A6%82%E4%BD%95%E8%AE%A9%20bash%20%E8%84%9A%E6%9C%AC%E6%AF%8F%E6%AC%A1%E8%BF%90%E8%A1%8C%E6%97%B6%E7%94%9F%E6%88%90%E4%B8%80%E4%B8%AA%E6%96%B0%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%9F.png)
我想在.tar
每周的每一天创建一个特定目录的文件。我想要实现的方法是使用 bash 脚本,每天使用 crontab 创建一个 tar 文件。
我想知道,有没有办法规范 bash 脚本生成的 tar 文件的名称?目前,每次生成文件时,它都是相同的,因为 bash 只有一个命令:tar -cvf file.tar /home/name/folder/
但我希望它根据日期略有不同,例如,,,FileTus.tar
等等。FileWed.tar
FileFri.tar
有没有办法通过终端命令来做到这一点?
谢谢
答案1
该date
命令可以以您想要的任何格式生成文本日期。然后您可以在脚本中使用它,例如:
tar -cvf File$(date +%a).tar /home/name/folder
这将生成FileMon.tar
,FileTue.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