如何递归地计数Linux目录中的文件?

我发现了这个:

find DIR_NAME -type f ¦ wc -l

但是当我运行它时,它返回以下错误。

查找:路径必须在表达式之前:


当前回答

tree $DIR_PATH | tail -1

样例输出:

5309个目录,2122个文件

其他回答

tree $DIR_PATH | tail -1

样例输出:

5309个目录,2122个文件

找到-type f | wc -l

OR(如果目录是当前目录)

找到。-type f | wc -l

这应该可以工作:

find DIR_NAME -type f | wc -l

解释:

-type f只包括文件。 |(而不是……)将find命令的标准输出重定向到wc命令的标准输入。 Wc (word count的缩写)对输入(docs)的换行、单词和字节进行计数。 -l只计算换行。

注:

将DIR_NAME替换为。执行当前文件夹中的命令。 您还可以删除类型f以在计数中包括目录(和符号链接)。 如果文件名可以包含换行符,这个命令可能会被高估。

解释为什么你的例子不起作用:

在您所显示的命令中,您没有使用“Pipe”(|)来连接两个命令,而是使用了shell不将其识别为命令或类似内容的断线(δ)。这就是为什么你会得到错误消息。

ls -l | grep -e -x -e -dr | wc -l 

长串 过滤文件和dirs 计算过滤后的行号

对于当前目录:

find -type f | wc -l