计算文件的最快方法是什么?

时间:2012-08-21 16:19:44

标签: bash

我们刚刚安装了一个大型文件管理器设备,我们想要存储来自供应商的数据。他们每天都将FTP文件发送到它,我们现在有大约60,000多个文件。

find . -name '*TXT' -exec ls '{}' \; | wc -l虽然效果很慢。

有更快的方法来计算文件吗?

4 个答案:

答案 0 :(得分:8)

为什么不

find . -name '*TXT' | wc -l

?您当前的命令不必为每个文件生成ls,并且该过程本身产生的速度非常慢。对我的系统进行快速测试表明速度提高了40倍。

答案 1 :(得分:2)

怎么样

find . -name '*TXT' | wc -l

答案 2 :(得分:2)

使用GNU查找,这可能会稍快一些:

find . -name '*.TXT' -printf x | wc -c

或使用POSIX

find . -name '*.TXT' -exec printf x%.s {} + | wc -c

答案 3 :(得分:2)

使用bash:

shopt -s globstar nullglob

然后,

files=(**/*.TXT)
nfiles=${#files[@]}

nfiles=$( printf "%s\n" **/*.TXT | wc -l )