统计目录中文件数量的最佳方法是什么?

统计目录中文件数量的最佳方法是什么? 在 Linux 上统计目录中的文件数量有多种方法。其中一些方法比其他方法更可靠,有些甚至可能导致文件计数不准确。本文介绍了使用ls、find以及使用通配符和bash 数组的bashshell 这三种不同方法的陷阱和最佳实践。如何使用 ls 和 wc 命令统计文件数量?你在网上找到的大多数解决方案都会尝试解析通过wc命令行管道传递的ls命令输出,有时还会在中间加入grep。常见的示例是ls -la | wc -l。这种方法不可靠,应该避免使用。除了为ls和wc创建两个 fork 进程之外,永远不应解析ls的输出,因为文件名可能包含换行符,这在使用ls和wc时会导致错误结果。在该示例中,计数也是不正确的,因为它会包含.(当前目录)和..(父目录)的引用。更好的版本是使用ls -1bA | wc -l,它会从ls输出中跳过.和..,转义不可打印字符,并强制输出每行一个条目。[me@linux ~]$ls-atmp/....one file1 file2[me@linux ~]$ls-atmp/|wc-l5[me@linux ~]$ls