文件夹中的文件数量,给出不同的结果

文件夹中的文件数量,给出不同的结果

要计算我正在使用的文件夹中的文件数量:

ls -l | wc -l

但这比以下结果多 1:

ls | wc -l

是什么原因造成的?另外这三个数字代表什么

ls | wc

答案1

使用时,ls -l您不仅可以获得指定目录中所有文件的列表(每行一个文件),还可以total [BLOCKS]在顶部获得一行,显示此文件夹中所有文件总共占用了多少个文件系统块。有关此行的更多信息,请访问ls -l 之后第一行的“total”是什么?在 Stack Overflow 上。

为了每个文件仅获取一行(反之亦然),您可以使用ls -1不添加额外信息的替代方法。


来自wc的手册页:

Print  newline,  word,  and  byte counts for each FILE

因此,输出中的第一个数字wc是行数,第二个数字是字数(“单词是由空格分隔的非零长度的字符序列。"),最后一个数字是输入的大小(以字节为单位)。


man COMMAND您可以在终端中输入来阅读大多数命令的 manpage(手册页) ,例如man lsman wc

答案2

此链接关于为什么尝试处理(解析)输出ls是有风险的。

相反,获取目录的链接数(参见man stat),减去 2(对于...条目)。

dir=$PWD
Nfiles=$(( $(stat --printf=%h $dir) - 2 ))

注意:这会计算 中的文件和目录$dir。 分别计算这两个是另一个问题。

相关内容