bash - 使用 find 删除所有子目录(及其文件)

标签 bash recursion find subdirectory rm

我确定这是直截​​了当的并且在某个地方得到了回答,但我没能找到我要找的东西。基本上,我试图每 7 天运行一次 cron 脚本来清除给定目录的内容。到目前为止,我已经尝试了以下方法,

find /myDir -mtime 7 -exec rm -rf {} \;

然而,这也删除了我不想要的父目录 myDir。我也试过了,

find /myDir -type f -type d -mtime 7 -delete

这似乎什么都不做。我也试过了,

fnd /myDir -type d -delete

它删除了除父目录之外的所有内容,正如我需要的那样。然而,一条警告信息出现了,

relative path potentially not safe

如果有人可以纠正我的脚本,以便它安全地删除文件夹中的所有子目录,我将不胜感激。

非常感谢。 =)

更新:我决定进行以下操作,

find /myDir -mindepth 1 -mtime 7 -delete

根据我从所有回答者那里学到的知识。再次感谢大家。

最佳答案

尝试:

find /myDir -mindepth 1 -mtime 7 -exec rm -rf {} \;

关于bash - 使用 find 删除所有子目录(及其文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5896223/

相关文章:

android - Git 设置 - Git Bash 的终端模拟器

c - 使用递归在C中反转字符串

matlab - 倍频程/Matlab : vectorising '==' operator?

VB.NET 谓词数组查找

c# - 使用递归方法调用的阶乘计算

c# - Unity - 在列表中找不到对象

bash - 试图做出一个 if 语句,它会在 bash 中完成某些操作后继续执行

linux - 结合 tty 的历史

bash - 用空格替换所有项目符号

java - 如何从平衡二叉搜索树中按升序打印整数?