從存儲在文件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