Find

多執行緒查找執行

  • July 1, 2021

是否有一些機制可以讓 -exec 使用多個作業進行查找?

讓我們以這個命令為例

find ./* -exec flac --best {} \;

是否有某種方法可以設置並發-exec命令的數量,以便比這種解決方案更容易執行:

執行find ./*並將結果保存到文件/管道中,以便將另一個命令拆分為 16 個部分(或您想要的多個執行緒),然後在這些部分上執行命令?

如果您使用 xargs,您可以設置工作人員的數量

find . -type f -print0|xargs -0 -P 16 -I % opusenc --bitrate 256 % %.opus

xargs -P 16

(因為我很難在網上找到更多詳細資訊或了解手冊頁部分)

它一次對輸入的 16 個或傳遞給 -P 的數字執行您的命令。


對於我的命令,我試圖轉換有組織的 cd 音樂文件文件夾

$$ artist/album/music file $$作品。這是一個複制的文件夾,所以我想刪除原件。因此,比我使用的命令更好的命令是

find . -type f -print0|xargs -0 -P 16 -I % sh -c 'opusenc --bitrate 256 % %.opus && rm %'

轉換後,原始文件被刪除。

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