递归计数Linux目录中的文件
我如何递归计算Linux目录中的文件?
我找到了这个:
find DIR_NAME -type f ¦ wc -l
但是当我运行它时,它会返回以下错误。
发现:路径必须在表达式之前:|
这应该工作:
find DIR_NAME -type f | wc -l
说明:
-type f只包含文件。 |  ( 而不是¦ )重定向find命令的标准输出到wc命令的标准输入。 wc (单词计数的简写)在其输入(文档)上计算换行符,单词和字节。 -l只算换行符。 笔记:
DIR_NAME替换为.  在当前文件夹中执行该命令。 -type f以在计数中包含目录(和符号链接)。 解释你的例子不起作用的原因:
  在你显示的命令中,你不使用“Pipe”( | )来连接两个命令,而是使用shell无法识别的命令或类似命令( ¦ )。  这就是为什么你得到这个错误信息。 
对于当前目录:
find . -type f | wc -l
如果您想要了解当前目录下每个目录中有多少个文件,请执行以下操作:
for i in $(find . -maxdepth 1 -type d) ; do 
    echo -n $i": " ; 
    (find $i -type f | wc -l) ; 
done
  当然,这可以全部在一条线上。  圆括号阐明了谁的输出wc -l应该在看(在这种情况下find $i -type f )。 
