我有以下目录结构:
/level1-root
/level2-a
/level3-aa
/level3-ab
/level2-b
/level3-ba
如何在不触碰 1 级和 2 级的情况下删除所有 3 级目录及其内容?
答案1
如果删除level3-ba
,则会level2-b
丢失其中一个条目,因此它不是“不触及”第 2 级。
如果您只想删除 3 级目录及其内容(即不删除 2 级目录下的文件,也不删除 2 级和 1 级的任何文件),那么 .Safefind -mindepth ... -maxdepth ... -type d ...
命令就可以完成此任务:
find /level1-root -mindepth 2 -maxdepth 2 -type d -exec echo rm -rf {} +
- 为什么
2
?因为你的 3 级目录比/level1-root
我们开始时深了 2 个目录。 - 确认获得所需的目录后,无需
echo
执行实际的删除。