我收集了大量关于文件总大小为50*50*10000
的{{1}}个文件的数据。文件结构如下:
3TB
现在给出一个文件名,我想找到它的位置;然而,直截了当的/myhdd/Experiment_{id}/Run_{id}/Filename
效率极低。它需要查找整个硬盘才能找到一个文件。有没有更好的方法来做到这一点,比如以某种方式构建我的文件结构的索引来加速find /myhdd -name "filename"
?
答案 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了解与您的问题相关的更多信息。