快速查找数百万个文件中的文件

时间:2017-11-16 07:23:44

标签: linux file find

我收集了大量关于文件总大小为50*50*10000的{​​{1}}个文件的数据。文件结构如下:

3TB

现在给出一个文件名,我想找到它的位置;然而,直截了当的/myhdd/Experiment_{id}/Run_{id}/Filename效率极低。它需要查找整个硬盘才能找到一个文件。有没有更好的方法来做到这一点,比如以某种方式构建我的文件结构的索引来加速find /myhdd -name "filename"

2 个答案:

答案 0 :(得分:0)

也许您可以使用locate命令,它通常比查找更快:

locate -b filename

答案 1 :(得分:0)

如果locate或各种find调用对您的情况仍然很慢,您可以创建并使用搜索带有路径的文件,如已评论过的那样。

你创建了"索引"文件

find . -type f > myindex

您可以定期更新,或者使用-ctime添加新文件,或者从一开始,它只需要您现在的搜索时间成本。

然后你可以找到搜索任何文件名的路径。这可能足够快:

fname="myfilename"; awk -F/ -v f="$fname" '$NF==f' myindex

Here了解与您的问题相关的更多信息。