对子目录感到困惑?

对子目录感到困惑?

我对递归count显示包含隐藏项( )有疑问。我可以递归显示子目录,但我对不可见的子目录感到困惑。此外,我只能使用和命令来解决问题。请不要建议我只能使用和命令。numbersub-directoriesinvisible sub-directorieslswc'find'lswc

到目前为止我已经尝试了以下命令。

ls -1 | wc -l

ls -R | wc -l

ls -R | wc -c

ls -aR | wc -l

ls -aR | wc -c

但我仍然没有找到解决方案。您能告诉我吗?

答案1

我刚刚重新阅读了这些问题,发现它不想使用 find。

我发现两个似乎都给出了正确答案:

第一个是:

ls -lR | grep ^d | wc -l

第二个是:

ls -Rp | grep "/$" | wc -l

答案2

使用:

ls -lAR | grep '^d' | wc -l

但你应该记住:永远不要解析输出lsfind!在这种情况下,最好使用这个答案

另请参阅man ls以了解我为什么使用-l-A-R选项。

答案3

根据我的经验,find这是一个搜索文件或目录的更好的工具 - 尤其是递归和包括点文件名。

find -mindepth 1 -type d | wc -l

您可以进行一些优化,如果您只写入并计算每个匹配的单个字符:

expr $(find -mindepth 1 -type d -printf 1 | wc -c) - 1

如果要将工作目录包含在结果中,请设置-mindepth为 0(或省略它)。

相关内容