Ubuntu 10.04에서 병렬 명령을 사용하는 데 문제가 있습니다. 병렬 문서를 확인하고 실행할 명령이 거의 없음을 발견했습니다. 모든 경우에 아무런 조치도 취하지 않고 명령 프롬프트로 돌아갑니다. 예를 들어 bzip2를 사용하여 여러 파일을 압축하려고 합니다.
17:32 farhat HarshaNaveen$ parallel bzip2 ::: *fastq
17:33 farhat HarshaNaveen$ ls *fastq|parallel bzip2 {}
이 명령 중 어느 것도 작동하지 않습니다. 오류도 없습니다. man 파일에 제공된 예제는 잘 작동합니다.
18:58farhat HarshaNaveen$ parallel sh -c "echo hi; sleep 2; echo bye" -- 1 2 3
hi
hi
hi
bye
bye
bye
18:58farhat HarshaNaveen$
내가 뭘 잘못했나요?
답변1
첫 번째 시도가 가장 정확하지만 왜 그럴까요 :::
? :::
로 변경하면 --
원하는 대로 작동합니다.
parallel
명령줄은 구체적이고 특이한 구조를 가지고 있습니다. 전반부에서는 여러 번 실행하려는 명령과 매번 동일한 명령줄 부분을 제공합니다. 후반부에는 명령을 실행할 때마다 달라지는 부분을 줍니다. 이 반쪽은 파티션으로 구분됩니다 --
. 일부 실험에서는 parallel
후반부를 찾지 못하면 실제로 어떤 명령도 실행하지 않는 것으로 나타났습니다.
매뉴얼 페이지를 주의 깊게 다시 읽어보는 것이 좋습니다. 매뉴얼 페이지에는 익숙해지는 데 시간이 걸릴 수 있는 간결하고 정보가 많은 스타일이 있습니다. 또한 이미 익숙한 명령에 대해 알아보려면 일부 페이지를 읽어보세요.
답변2
기본적으로 우분투에서는 parallel
Tollef의 구현과 동일하게 작동합니다(왜?). 당신은 그것을 확인할 수 있습니다 /etc/parallel/config
. 명령줄에서 이 설정을 무시하고 GNU 모드로 전환할 수 있습니다 --gnu
. 매뉴얼 페이지의 모든 예는 이 스위치에서 제대로 작동합니다.
답변3
나는 당신이 동시에 bzip2 ::: *fastq
두 가지를 실행하려고한다고 가정하고 있습니다 ls *fastq|parallel bzip2 {}
. 두 개의 터미널 창을 열지 않고 각각의 창에서 실행하지 않는 이유는 무엇입니까?