这应该工作:
find DIR_NAME -type f | wc -l解释:
-type f以仅包括文件。| (而非¦ )将find命令的标准输出wc命令的标准输入。wc (单词计数的缩写)在其输入( docs )上对换行符,单词和字节进行计数。-l仅计算换行符。笔记:
DIR_NAME替换为.在当前文件夹中执行命令。-type f以在计数中包括目录(和符号链接)。您的示例为何不起作用的说明:
在显示的命令中,您并没有使用 “管道”( | )来连接两个命令,而是使用了断线( ¦ ),shell 无法将其识别为命令或类似命令。这就是为什么您收到该错误消息的原因。
对于当前目录:
find -type f | wc -l
如果要细分当前目录下每个目录中有多少个文件,请执行以下操作:
for i in */ .*/ ; do
echo -n $i": " ;
(find "$i" -type f | wc -l) ;
done当然,这可以全线进行。圆括号阐明了应该监视wc -l (在这种情况下,请find $i -type f