2015-05-09 53 views
2

我正在嘗試在單個文件夾中的〜200,000個文件上執行某些操作。在數千個文件中迭代速度更快

當我這樣做:

for i in *; do /bin/echo -n "."; done 

一個點每隔幾秒鐘打印。具有一百個文件的文件夾上的相同操作速度非常快。

這是爲什麼?如何加速包含數千個文件的文件夾的過程?

+0

創建一個線程過程中做,在時間 –

+0

瓶頸可能是你的文件系統,而不是外殼。如果您可以使用'btrfs'創建一個臨時虛擬硬盤並將文件移動到那裏(或者只是符號鏈接?),您可能會獲得更好的性能。當然,首先刪除任何明顯的複雜問題(Windows安裝?NFS?FUSE?) – tripleee

+0

這是一個功能相當強大的NFS,但我認爲你是正確的文件系統會降低速度。感謝您的評論。 – dust

回答

3

試試這個與GNU發現:

find . -maxdepth 1 -type f -printf "." 
+0

好主意,它工作。爲了清晰起見,我的「打印點」是一種簡化,但實際上我使用了xargs,並對這些文件進行了更高級的操作。 – dust