按文件夹名称删除日期文件夹的bash脚本

按文件夹名称删除日期文件夹的bash脚本,bash,Bash,我有一个脚本,可以在当前日期之前在备份文件夹中创建文件夹。该脚本每天通过cron运行一次 是否有办法通过文件夹名称删除超过3天的文件夹?差不多 日期-3 有效的剧本:谢谢你,乔·苏。此脚本按日期创建文件夹。压缩要备份的文件,将其粘贴到备份目录中,并清除3天以上的备份:-) 删除超过3天的每日备份(类型为“常规文件”): rm -f `find $YOUR_BACKUP_DIR -maxdepth 1 -type f -mtime +3` 从查找手册页: 独立于mtime工作,我可以告诉你,在特

我有一个脚本,可以在当前日期之前在备份文件夹中创建文件夹。该脚本每天通过cron运行一次

是否有办法通过文件夹名称删除超过3天的文件夹?差不多

日期-3

有效的剧本:谢谢你,乔·苏。此脚本按日期创建文件夹。压缩要备份的文件,将其粘贴到备份目录中,并清除3天以上的备份:-)

删除超过3天的每日备份(类型为“常规文件”):

rm -f `find $YOUR_BACKUP_DIR -maxdepth 1 -type f -mtime +3`
查找
手册页:


独立于mtime工作,我可以告诉你,在特别奇怪的情况下,它不会崩溃;-)

谢谢你的及时回复。由于文件夹是按日期命名的,是否仍要这样做,以避免使用“修改日期”,而是使用“文件夹名称”?是否会使用已创建的备份来修改文件夹?当目录包含具有奇怪文件名的文件时,脚本将断开并删除任意文件。另外,依赖mtime是非常脆弱的,我不建议这样做。如果你能更详细地阐述“奇怪的文件名”并更详细地描述其弱点,我会同意你的看法。我不是说这是最好的解决方案,但是文件名的格式是完全已知的,因为您在备份脚本中定义了它们。问题是您
查找…
,它将返回所有文件。攻击者或意外事件可能会插入名为
的文件“您希望保存的文件的名称”“您希望保存的另一个文件的名称…”
rm-f
然后会很高兴地删除原始文件名中包含文件名的所有文件,因为它不知道这些文件实际上来自一个文件名,而是被shell拆分为多个文件名。这真是太糟糕了。非常感谢。这很有效。如果有人想使用我的脚本,我已经修改了上面的脚本。
rm -f `find $YOUR_BACKUP_DIR -maxdepth 1 -type f -mtime +3`
   -mtime n
          File's data was last modified n*24 hours ago.  See the  comments
          for -atime to understand how rounding affects the interpretation
          of file modification times.
threedaysago=`date -d "3 days ago" +%Y%m%d`

for backup in [0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]
do
    backupdate=`echo "$backup" | tr -d -`   # remove dashes

    if test "$backupdate" -lt "$threedaysago"
    then
        rm -rf "$backup"
    fi
done