Linux

在短時間內查找+搜尋大文件

  • February 23, 2021

我正在使用以下查找語法來查找std*大於1000M.

find /data -type f \( -name "stdout" -o -name "stderr" \) -size +1000M -print

有時我們會根據大小搜尋文件夾中的文件30G,這需要花費同樣30min或更長的時間。

由於這個 find 命令是 bash 腳本的一部分,我想知道我們是否可以更快地進行搜尋?

find /data -type f \( -name "stdout" -o -name "stderr" \) -size +1000M -print可能非常接近使用常用 shell 腳本工具所能達到的最快速度。單個文件的大小無關緊要,因為它是與內容分開記錄的。也就是說,find實際上並沒有計算每個文件中的字節數來檢查它是否足夠大。如@Kusalananda 所述,此命令的瓶頸很可能是文件數量或腳本的其他部分。

如果您被允許透露原始碼,我建議您在Code Review Stack Exchange上提問。

引用自:https://unix.stackexchange.com/questions/634717