从存储在文件f
中的文件名列表中,找到dir
下每个文件名的相对路径,将这个新列表输出到文件p
的最佳方式是什么?我目前使用以下内容:从文件名列表中查找路径的有效方法
while read name
do
find dir -type f -name "$name" >> p
done < f
这对于大型列表或大型目录树来说太慢了。
编辑:几个数字:
dir
下的目录数:1870- 文件数量
dir
下:80622 - 在
f
文件名数:73487
所有列在f
中的文件确实存在于dir
之下。
因此,您的文件包含一个没有路径信息的文件名列表?你想如何处理多次出现的文件?我假设你要将整个目录树加载到内存中,以便快速完成此操作,因为重复扫描磁盘永远不会足够快,但是否可行取决于我们所谈论的大小。恐怕我不知道这样做的方式,但如果这是一个选项,用PHP或类似的方法做这件事会很微不足道? – Basic
是的,只是文件名,结果必须包含所有可能的路径。可以将目录树加载到内存中,但我宁愿不使用PHP,因为它没有安装。尽管Perl或Python都可以。 – moatPylon
+1使用'while read name ... done