按级别删除子目录

按级别删除子目录

我有以下目录结构:

/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执行实际的删除。

相关内容