Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

In a larger script to post-process some simulation data I had the following line:

parallel bnzip2 -- *.bz2

Which, if I understand parallel correctly (and I may not), should run n-core threads of the program over all files with the listed extension. You may notice that I misspelled the command bunzip2. I would expect a warning or error message here, but it fails silently. Is this intended? How do I not get bit by this in the future?

Update:

It is possible that I have a different parallel installed than I think I do:

> 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

A man page of parallel on my system gives:

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

Which seems this is not the GNU version.

share|improve this question
    
Prints an error on my system. What does parallel --version say? $ parallel bnzip2 -- * sh: bnzip2: command not found –  Mikel Apr 3 '12 at 15:03
    
GNU parallel is "Copyright (C) 2010,2011,2012 Ole Tange, ole.tange.dk and Free Software Foundation, Inc." (Same author since inception.) –  Mat Apr 3 '12 at 18:02
add comment

2 Answers 2

up vote 11 down vote accepted

You have been hit by the confusion with Tollef's parallel from moreutils. See https://www.gnu.org/software/parallel/history.html

You can install GNU Parallel simply by:

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

Watch the intro videos for GNU Parallel to learn more: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

share|improve this answer
1  
It all makes sense now! For the record, on Ubuntu 12 right now apt-get install parallel pulls Tollef's parallel not your GNU version. Thanks for filling me in. –  Hooked Apr 8 '12 at 0:03
    
For Ubuntu 12, see Where do I get a package for GNU Parallel? –  Ian Oct 21 '13 at 19:51
add comment

(I would make this a comment, but I lack the privileges.)

You can also probably just use parallel --gnu. You said that Ubuntu 12(.04?) uses Tollef's version, but it's actually the gnu implementation, it just defaults to Tollef's syntax by default for some reason.

I added alias parallel='parallel --gnu' to my login script so I don't have to fuss with it anymore.

share|improve this answer
1  
You can also add --gnu to $HOME/.parallel/config. –  Thor May 8 '13 at 21:03
    
Note: The answer here is addressing a comment from @Hooked. –  nobar May 30 '13 at 22:04
    
See here for another approach plus a bit more detail regarding versions: askubuntu.com/a/298598/11522. –  nobar May 30 '13 at 22:06
1  
Fedora also frustratingly puts --tollef in /etc/parallel/config. As if that is not obnoxious enough, GNU parallel itself reports that --tollef will be removed on 20140222. –  musicinmybrain Jun 19 '13 at 4:44
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.