计算忽略父目录的子目录数

Mar*_*819 4 linux directory bash directory-structure subdirectory

我想计算深度2中子目录的数量,但是忽略bash脚本中深度1的父目录。

例:

root_dir ---|--ignore_dir ---|--count_dir
            |                |--count_dir ---|--ignore_dir
            |                                |--ignore_dir
            |--ignore_dir ---|--count_dir
                             |--count_dir
                             |--count_dir
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ase*_*rre 5

您可以尝试这样的事情:

find /path/to/root_dir -maxdepth 2 -mindepth 2 -type d | wc -l
Run Code Online (Sandbox Code Playgroud)

在这里,我们明确地将深度限制find为2(不多不少),并列出所有目录。wc -l计算find命令输出中的行数。

注意:

如果您的文件夹名称包含换行符,特定字符或不正常的编码,则使用wc -l会产生不正确的结果。

这个问题中得到启发,您可以为找到的每个文件夹打印一个字符,并计算得到的字符数。

您可以使用以下代码段:

find /path/to/root_dir -maxdepth 2 -mindepth 2 -type d -printf '.' | wc -c     
Run Code Online (Sandbox Code Playgroud)