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