Answers:
导航到驱动器并执行
ls -lR | grep ^d | wc -l
grep -c
过wc -l
。也许只是我。
\nd
(其中\n
NL字符),则以上内容将计数过多。
ls
不应将输出通过管道传输。此外,这将慢得多,因为它必须输出整个树,然后通过它运行grep
总共查找所有文件夹,包括子目录吗?
find /mount/point -type d | wc -l
...或找到根目录中的所有文件夹(不包括子目录)?
find /mount/point -maxdepth 1 -type d | wc -l
*foo*
斜体:foo)
find /path -not -iname '*.mp3' | wc -l
用来过滤MP3或同时使用MP3和WAVfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
新行是目录名称中的有效字符。我建议让find
每个找到的目录打印一个空行,然后wc
对这些行进行计数。
find /mount/point -type d -printf '\n' | wc -l
尝试以下操作[参见下文]:
ls -1 -p | grep "/" | wc -l
这将打印当前目录的一列列表,并在子目录项的末尾加上斜杠,然后用斜杠计算行数。
编辑:您可能应该接受庸医吉基德的回答,因为它更为明确,但是我已经纠正了我的问题(在考虑了庸医的建议之后)。
ls -Rp | grep "/$" | wc -l
-1
因为ls会检测管道并且不会格式化列。也可以使用来获取递归列表-R
,但是您可能希望grep "/$"
只匹配尾部斜杠(否则计数将关闭)。最终版本:ls -Rp | grep "/$" | wc -l
.
(即/mount/point
)计数,而我上面的评论中的ls版本将不计在内。这些计数相差1,因此您可以/mount/point/*
在find命令中使用它来更正(假设没有隐藏的点目录)。
查找当前目录中的文件夹和目录数
在终端中输入以下命令
echo */ | wc