멀티스레드 조회 실행

멀티스레드 조회 실행

여러 작업을 사용하여 -exec로 작업을 찾을 수 있는 메커니즘이 있습니까?

이 명령을 예로 들어 보겠습니다.

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

-exec다음 솔루션보다 실행하기 쉽도록 동시 명령 수를 설정하는 방법이 있습니까 ?

결과를 실행 find ./*하고 파일에 저장하거나 다른 명령으로 파이프하고, 이를 16개 부분(또는 임의 개수의 스레드)으로 분할한 다음 해당 부분에 대해 명령을 실행하시겠습니까?

답변1

xargs를 사용하면 작업자 수를 설정할 수 있습니다

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

xargs -P 16

(온라인에서 자세한 내용을 찾거나 매뉴얼 페이지 섹션을 이해하는 데 어려움을 겪고 있기 때문에)

한 번에 16개의 입력 또는 -P에 전달한 입력 수에 대해 명령을 실행합니다.


내 명령에 따라 CD 음악 파일 [아티스트/앨범/음악 파일]로 구성된 폴더를 작품으로 변환하려고 합니다. 복사된 폴더인데 원본폴더를 삭제하고 싶어요. 따라서 내가 사용한 명령보다 더 나은 명령은 다음과 같습니다.

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

변환 후에는 원본 파일이 삭제됩니다.

관련 정보