帮助根据日期重命名文件夹

帮助根据日期重命名文件夹

我有文件夹“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本地化时间戳更容易处理 - 例如,它们默认排序正常,并且易于解析(无需担心语言、月份名称的映射等)。

相关内容