linux - 使用 Shell 删除所有早于 X 天的文件夹

标签 linux shell cron

我的备份存储在文件夹中。例如

 **05092013** > 
 - File1.sql
 - File2.sql
 - File1.tar
 - File2.tar

等等。

现在我想删除所有早于 X 天的文件夹。

我试过了

find $FILEDIR -mtime +14 -exec rm {} \;

但它只删除所有文件,而不删除文件夹。如何删除所有较旧的文件和文件夹?

有人可以帮助我吗?

提前感谢 cSGermany

最佳答案

使用-r

查找“$FILEDIR”-mtime +14 -exec rm -ir {}\;

如果您知道自己在做什么,请将 -ir 更改为 -r

或者使用-delete:

find "$FILEDIR" -mtime +14 -delete

但是请确保你知道自己在做什么。

您也可以添加这样的检查,以确保 $FILEDIR 始终位于您的主目录中的某个位置:

[[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtime +14 -delete

关于linux - 使用 Shell 删除所有早于 X 天的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18636572/

相关文章:

mysql - Laravel MySQL 仅在计划任务上出错(通过 cron)

java - 在 Linux 上捕获虚拟打印机输出

bash - 运行 shell 脚本时为 "command not found"

PHP system() 调用在由 shell 调用时不起作用

linux - Shell脚本时间控制

node.js - 谷歌云中的 Cron 作业

linux - ssh cronjob with while 仅执行 1 次

c - 为什么wprintf在Linux上将Unicode的俄语文本音译为拉丁语?

linux - 如何在提交前从 git add 中删除某种类型的文件和目录?

linux - "home"- 终端中的字符串(?)已更改