여러 파일에 대해 동시에 동일한 명령을 실행하십시오.

여러 파일에 대해 동시에 동일한 명령을 실행하십시오.

각 파일에 대해 동시에 동일한 명령을 개별적으로 실행해야 합니다.

나는 노력했다

for file in *.txt; do ./script <"$file"; done

그러나 첫 번째 작업을 시작하고 완료될 때까지 기다린 후 다음 작업으로 이동합니다.

함께 시작해야합니다.

답변1

script사용자 입력이 필요하지 않은 경우 셸의 작업 처리 기능을 사용하여 백그라운드에서 실행할 수 있습니다.

for file in *.txt; do ./script <"$file" & done

명령에 연결하면 &백그라운드에서 실행됩니다 . 찾다직업 통제bash(또는 선호하는 쉘) 매뉴얼 페이지에서 자세히 알아보세요.

답변2

ls *.txt > list
cat list | parallel './script {}' &
wait

먼저 listfile.txt 파일을 나열합니다. parallel명령은 script각 file_name에 대해 백그라운드에서 실행됩니다. 마지막 wait명령은 추가 명령을 계속하기 전에 모든 백그라운드 작업이 완료될 때까지 기다립니다.

관련 정보