递归清除其中没有文件的文件夹中的所有文件夹和子文件夹

IMTheNachoMan

我有一个文件夹,其中有很多文件夹,等等。某些文件夹中有文件,有些则没有。我想通过查找没有文件的所有目录并删除它们来清理主文件夹。一个例子可能更有意义:

所以,如果我从这个开始:

  • mainFolder
    • folder1
      • folder1 (空的)
      • folder2
        • file.txt
      • folder3 (空的)
    • folder2
      • folder1 (空的)
      • folder2 (空的)
      • folder3
        • folder1
          • folder1 (空的)
    • folder3
      • folder1
        • file.txt

我应该以这个结尾:

  • mainFolder
    • folder1
      • folder2
        • file.txt
    • folder3
      • folder1
        • file.txt

所以:

  • /mainFolder/folder1/folder1 已被删除,因为它没有文件
  • /mainFolder/folder1/folder3 已被删除,因为它没有文件
  • /mainFolder/folder2 已被删除,因为它没有文件,甚至所有子文件夹都为空

我希望这是有道理的...

我唯一的想法是从mainFolder每个子文件夹开始并递归地向下移动,删除那些空的子文件夹。

安迪·道尔顿

看看这是否满足您的要求:

find mainFolder -depth -empty -type d -exec rmdir {} \;

那应该mainFolder使用深度优先遍历找到空的目录,然后删除这些目录。由于它执行深度优先遍历,因此在删除子目录时,如果父目录为空,find则将其标识为空并也将其删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Powershell:将所有文件从文件夹和子文件夹移至单个文件夹

如何获取没有文件的文件夹和子文件夹的列表?

从文件夹和子文件夹加载所有文件

Git将文件夹视为文件,并忽略所有子文件夹和-files

以cmd列出所有文件夹和子文件夹,但不列出文件

将文件复制到文件夹和所有子文件夹中

打印包含相同子文件夹的所有文件夹中哪些子文件夹为空?

遍历文件夹和子文件夹中的所有文件并获取创建日期

.gitignore,排除文件夹中的所有文件...,但保留其中带有.gitkeep的那些子文件夹?

读取文件夹和子文件夹中的所有文件-进度和大小

递归测试文件夹中的所有flac文件

递归搜索子文件夹并删除6个月以上的子文件夹中的所有文件

批。批量重命名文件夹和所有子文件夹中的文件

删除所有旧文件,文件夹和子文件夹的命令

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

Xampp htdocs文件夹,子文件夹和所有文件的权限

获取文件夹和子文件夹中所有.txt文件的路径

文件夹中的tar + gz文件,不放入所有子文件夹中

列出R中没有子文件夹的文件夹中的所有文件

Gitignore用于文件夹和子文件夹中的所有文件

Python脚本递归重命名文件夹和子文件夹中的所有文件

从递归文件夹中删除所有zip文件

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?

在给定文件夹的所有子文件夹中递归创建一个php文件

PowerShell - 列出 TreeView GUI 元素中的所有文件夹和子文件夹

为文件夹和子文件夹中的所有文件设置命名空间

获取文件夹和子文件夹中的所有文件

编辑和重置所有文件夹、子文件夹和文件的权限

Powershell 查找给定文件夹名称中的所有空文件夹和子文件夹