代码之家  ›  专栏  ›  技术社区  ›  Rafid

递归删除bash中的所有空文件夹

  •  0
  • Rafid  · 技术社区  · 4 年前

    在Bash中是否有一个命令可以递归地删除所有空文件夹,直到树中没有空文件夹为止?我可以执行以下操作:

    find . -type d -empty | xargs -I '{}' rmdir {}
    

    重复,直到没有更多的空文件夹,但我正在寻找更高效的东西。特别是因为要知道是否还有空文件夹,我必须执行相同的命令,即两次调用 find . -type d -empty 在每次迭代中。

    0 回复  |  直到 3 年前
        1
  •  17
  •   Jeff Schaller Zayan    3 年前

    这很简单,因为 GNU find utility :

    find . -type d -empty -delete
    

    这将删除空目录;自 -delete 选项意味着 -depth 选项,它将删除下面只有空目录的目录,所以不需要多次运行它。