I recently had a bug where I used -X when I didn't mean to,
(copy/paste bug). The script can't handle additional arguments
without additional --flags. I can approximate this easily with this
example (using -m because -X is generally too smart for utils I could
think of):
This will fail, since 'dd' doesn't allow bare arguments and the -j1
forces parallel to try to run it all at once.
parallel --tag -j1 -m 'dd if=/dev/zero of=/dev/null count={}' ::: 1 2
This doesn't fail.
parallel --tag -j2 -m 'dd if=/dev/zero of=/dev/null count={}' ::: 1 2
This manifest in jobs running on machines with lots of cores, no
failure, despite the -m/-X really being in error. Without the -j, we
just get the default -j for that machine.
I would have liked for the -m/-X to fail regardless of the number of
cores, since it was really inappropriate to run the tool with options
in that way. To me the -m/-X is more important than the -j but I can
see it both ways.
$ parallel --version
GNU parallel 20200422
Also, Thanks for parallel, it is fantastic and I love it.
Josef