(GNU?) 병렬이 자동으로 실패하는 이유는 무엇이며 어떻게 해결합니까?

(GNU?) 병렬이 자동으로 실패하는 이유는 무엇이며 어떻게 해결합니까?

일부 시뮬레이션 데이터를 사후 처리하기 위한 더 큰 스크립트에는 다음 줄이 있었습니다.

parallel bnzip2 -- *.bz2

내가 올바르게 이해했다면 parallel(그리고 그렇지 않을 수도 있음) 나열된 확장자를 가진 모든 파일에 대해 프로그램의 n-코어 스레드를 실행해야 합니다. 내가 명령의 철자를 잘못 입력했음을 알 수 있습니다 bunzip2. 여기에 경고나 오류 메시지가 나타날 것으로 예상했지만 자동으로 실패합니다. 의도된 것인가요? 앞으로는 어떻게 이런 일을 당하지 않을 수 있나요?

업데이트:

parallel내가 생각하는 것과 다른 것을 설치했을 수도 있습니다 .

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel

parallel내 시스템 의 매뉴얼 페이지는 다음을 제공합니다.

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

이건 어느 것 같은데~ 아니다GNU 버전.

답변1

moreutils의 Tollef 병렬 기능과 혼동을 겪었습니다. 보다https://www.gnu.org/software/parallel/history.html

다음과 같이 간단하게 GNU Parallel을 설치할 수 있습니다.

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

자세히 알아보려면 GNU Parallel 소개 비디오를 시청하세요. https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

답변2

(이것을 코멘트로 작성하고 싶지만 권한이 부족합니다.)

그냥 사용해도 됩니다 parallel --gnu. Ubuntu 12(.04?)가 Tollef 버전을 사용한다고 말했지만 실제로는 gnu 구현이며 어떤 이유로든 기본적으로 Tollef의 구문을 기본값으로 사용합니다.

alias parallel='parallel --gnu'더 이상 소란을 피울 필요가 없도록 로그인 스크립트에 추가했습니다 .

관련 정보