如何删除父文件夹下只有一个文件的子文件夹

牛奶

我有一个包含 8000 个子文件夹的文件夹,我想删除那些只包含一个文件的子文件夹

艾哈迈德·赛义德·阿克布鲁特

考虑到所有这些subfolders都在没有“子子”深度的同一个文件夹中,find命令用这个单行打印子文件夹并bash处理其余的:

示例文件夹和文件:

$ find . 
.
./subfolder_1
./subfolder_1/file1
./subfolder_1/file2
./subfolder_1/file3
./subfolder_2
./subfolder_2/file4
./subfolder_3
./subfolder_3/file5
./subfolder_3/file6
./subfolder_4
./subfolder_5
./subfolder_5/file7
    

一个用于删除仅包含一个文件的子文件夹的衬垫:

$ find . -not -empty -type d -print0 | while read -d '' -r dir; do files=("$dir"/*); if((${#files[@]} == "1")); then rm -r $dir exit; fi; done

删除后剩下的列表

$ find . 
.
./subfolder_1
./subfolder_1/file1
./subfolder_1/file2
./subfolder_1/file3
./subfolder_3
./subfolder_3/file5
./subfolder_3/file6
./subfolder_4

额外的

包含文件数的子文件夹列表:

$ find . -not -empty -type d -print0 | while read -d '' -r dir; do files=("$dir"/*); printf "${#files[@]}  $dir\n"; done
    6  .
    3  ./subfolder_1
    1  ./subfolder_2
    2  ./subfolder_3
    1  ./subfolder_5

仅包含一个文件的子文件夹列表:

$ find . -not -empty -type d -print0 | while read -d '' -r dir; do files=("$dir"/*); if((${#files[@]} == "1")); then printf "${#files[@]}  $dir\n" exit; fi; done
1  ./subfolder_2
1  ./subfolder_5

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何删除除父文件夹下的某些特定文件夹以外的所有文件

如何删除不包含父文件夹和第一个子文件夹的文件夹?

如何迭代一个文件夹下的所有文件,但我不想迭代一些特殊的子文件夹?

如何在 Android Studio 中的 Values 文件夹下创建一个名为“dimens”的子文件夹?

有什么方法可以将所有文件复制到同一父文件夹下的一个特定子文件夹?

如何删除一个文件夹,但将所有子文件夹和文件保留在一个git分支中?

如何选择位于文件夹或子文件夹下的所有js文件

递归删除除一个子文件夹之外的所有子文件夹

当只有一个时,VS Code不显示子文件夹

如何删除Android上一个文件夹中的所有文件和文件夹

为什么我的主文件夹下有一个node_modules文件夹?

如何在 Android Studio 中的 Values 文件夹下创建一个名为“dimens”的文件夹?

如何仅在一个分支文件夹或子文件夹中显示分支?

(Swift) 如何在一个文件夹中创建子文件夹

如何为每个创建的项目创建一个带有子文件夹的文件夹?

正则表达式网站只有一个子文件夹,之后没有其他文件夹

如何将一个文件复制到所有子文件夹

如何删除一个不幸的名字的文件夹?

我如何git添加一个文件夹,但没有文件夹的内容?

在不同的命名文件夹下创建子文件夹

将2个文件夹下的txt文件与子文件夹合并

如何一步更改一个文件夹及其子文件夹/文件的权限?

为什么我的链接是在Magento中只有一个存储的子文件夹URL中创建的

通过Unix命令在父目录下创建一个.zip文件,该文件仅包含父文件夹及其子文件夹

如何使用命令行将所有文件从一个文件夹移动到子文件夹(.html文件除外)?

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

如何删除特定文件夹下的文件和文件夹

递归删除所有文件和文件夹,但不包括一个文件夹

将除一个子文件夹外的所有子文件夹移动到该子文件夹中