Mat*_*ark 9 linux filesystems ext4 find
我经常需要计算目录中的文件数,有时会达到数百万。
有没有比枚举和计数更好的方法find . | wc -l?是否可以在 ext3/4 上进行某种 I/O 密集程度较低的文件系统调用?
pab*_*ouk 16
不是根本的加速,但至少是一些东西:)
find . -printf \\n | wc -l
Run Code Online (Sandbox Code Playgroud)
您确实不需要传递文件名列表,只需换行即可。当目录缓存在 RAM 中时,这个变体在我的 Ubuntu 12.04.3 上大约快 15%。此外,此变体可以正确处理包含换行符的文件名。
有趣的是,这个变体似乎比上面的变体慢一点:
find . -printf x | wc -c
Run Code Online (Sandbox Code Playgroud)
如果目录在它自己的文件系统上,你可以简单地计算 inode:
df -i .
Run Code Online (Sandbox Code Playgroud)
如果其他目录中的目录和文件的数量与计数的相比没有太大变化,您可以简单地从当前df -i结果中减去这个已知数量。通过这种方式,您将能够非常快速地计算文件和目录。
| 归档时间: |
|
| 查看次数: |
8657 次 |
| 最近记录: |