Linux脚本问题:无法删除20天前的指定格式iobroker备份文件
问题分析与解决
你的命令存在两个关键错误,导致无法匹配到目标备份文件:
- 错误指定文件类型:你要删除的是
.tar.gz格式的普通文件,但命令里重复使用了-type d(该参数表示匹配目录),这会让find只搜索目录,完全忽略了目标文件。 - 冗余参数重复:命令里重复书写了
-type d,属于无效的冗余配置。
修正后的命令
find /dir/to/files -maxdepth 1 -name "iobroker_*" -type f -daystart -mtime +20 -exec rm -f {} \;
额外优化建议
- 可以将文件名匹配规则写得更精确,避免误删其他以
iobroker_开头的非备份文件:find /dir/to/files -maxdepth 1 -name "iobroker_*_backupiobroker.tar.gz" -type f -daystart -mtime +20 -exec rm -f {} \; - 如果想先预览待删除的文件(防止误删),可以把
-exec rm -f {} \;替换为-print,先确认匹配结果:find /dir/to/files -maxdepth 1 -name "iobroker_*_backupiobroker.tar.gz" -type f -daystart -mtime +20 -print
内容的提问来源于stack exchange,提问作者Dakalaom
相关产品推荐
相关产品推荐

