这应该工作:
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