我尝试删除超过30天的Synology NAS上的备份文件。这些文件位于从我的Web服务器下载备份文件的过程中创建的目录中。
下载后,我要检查-mtime,然后删除较旧的文件。
脚本如下:
#!/bin/sh
## Datum auslesen
datum=`date +%Y-%m-%d_%H-%M`
## Mit wget die Datei AutoBackupDB-1.zip laden und in einem Ordner mit Datum uns Uhrzeit speichern
wget -m -P /volume1/Austauschordner/backup_xyz/$datum/ ftp://backup:[email protected]/AutoBackupDB-1.zip
echo "Backup von xyz wurde erstellt! "
## finde alle Ordner in einem angegebenen Verzeichnis mit dem Suchnamen die älter als die angegebenen Tage sind und lösche diese
find /volume1/Austauschordner/ -type d -name 'backup_*' -ctime +30 -delete
如果我运行此脚本,它将告诉我“目录不为空”,并且不会删除任何内容。
有没有简单的方法或选项可以删除目录中的所有内容?
正如@Stephen Kitt提到的,这很大程度上是find -delete的副本,它不会删除非空目录,这表明您要告诉它删除目录,但是目录不是空的(就像在rm some_nonempty_directory
没有目录的情况下无法运行)-r标志最少)。
话虽这么说,如果用替换-delete
为-exec rm -rv {} +
或,-exec rm -rv {} \;
则脚本应递归删除目录,而不会出现错误(v
测试后,如果您不希望输出冗长的内容,请删除该标志)。
注:+
在结束将导致rm -rv file1 file2 ...
同时的行动\;
将是rm -rv file1; rm -rv file2; ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句