在unix中查找目录中文件数的最佳方法

时间:2013-12-17 17:58:56

标签: linux unix

为了计算目录中的文件数,我知道两种方法 第一个ls -l file* |wc -l 第二个find file* -type f -maxdepth 1 | wc -l 哪一个更可靠,更正确?

1 个答案:

答案 0 :(得分:1)

首选find选项,但使用-name 'file*'(单引号),如

find . -maxdepth 1 -name 'file*' -type f | wc -l

这将避免通配,因为上面的两个例子我认为可能会遇到最大限制。

`/home/charles/data/Study$ find . -maxdepth 1 -name CL* -type f | wc -l
bash: /usr/bin/find: Argument list too long
`/home/charles/data/Study$ find . -maxdepth 1 -name `CL*` -type f | wc -l
318480

ls没有这样的解决方案,因此find稍微更可靠。这完全由ARG_MAX决定,如:

`/home/charles/data/Study$ getconf ARG_MAX
2097152 # in bytes