我对递归count
显示包含隐藏项( )有疑问。我可以递归显示子目录,但我对不可见的子目录感到困惑。此外,我只能使用和命令来解决问题。请不要建议我只能使用和命令。number
sub-directories
invisible sub-directories
ls
wc
'find'
ls
wc
到目前为止我已经尝试了以下命令。
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
但你应该记住:永远不要解析输出ls
find
!在这种情况下,最好使用这个答案。
另请参阅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(或省略它)。