我有文件夹“Backup yzT Jan-01-2013”。我还制作了一个每天进行备份的脚本。
我面临的问题是如何根据日期逐日重命名文件夹?取个新名字很简单,就是
"/home/yzT/Backup yzT `date '+%b-%d-%Y'`"
但是,如何准确选择文件夹“Backup yzT Jan-01-2013”?因为每天都会有所不同。
我试过了
mv "/home/yzT/Backup yzT *" "/home/yzT/Backup yzT `date '+%b-%d-%Y'`
希望 mv 路径像正则表达式一样工作,但遗憾的是,事实并非如此。
那么如何重命名文件夹呢?
答案1
您的mv
命令不起作用,因为您引用了*
,因此文件名通配没有启动。
你可以尝试这样的事情:
mv "/home/yzT/Backup yzT "* "/home/yzT/Backup yzT `date '+%b-%d-%Y'`
(请注意, 已从*
引号中移出。这是不是正则表达式匹配,它是通配.)
这将匹配Backup yzT
该目录中以该目录开头的所有文件名,因此它不适用于具有潜在Backup yzT weekly
目录的方案。
话虽这么说,你是真的这些目录名让你自己变得很困难。如果您选择这样的方案:
yzT.daily.timestamp yzT.weekly.timestamp etc...
您不必担心空格会使您的所有脚本更难正确编写。此方案还允许您轻松地独立于每周备份进行每日备份,或者独立地为两个用户进行备份。
最后,在脚本中使用日期格式比YYYYMMDD.HHMMSS
本地化时间戳更容易处理 - 例如,它们默认排序正常,并且易于解析(无需担心语言、月份名称的映射等)。