Markus Brueffer wondered why: tar xvfj file.tar.bz2 is not the same as tar -xvfj file.tar.bz2
What I'm asking me, is why the "-" makes a difference, though I haven't looked at the sources, yet. The manpage states, that the "-" is only optional, so "tar -jxfv" and "tar jxvf" should be equivalent, but obviously they are not.
The manpage has not explained the history here.
The original tar programs (1970s?) used a very peculiar
command line:
tar [letter options] [arguments to those options]For example, the 'b' and 'f' options both require
arguments, so you would use them as
tar xbfv 32 file.tarNote that '32' is the argument to 'b' and 'file.tar' is the argument to 'f'. Also note that there is no '-' here.
This is totally different from other Unix programs, of course, so most current tar programs handle the arguments differently depending on whether there is a leading '-'. If there is a leading '-', then it uses common Unix conventions, so that tar -xfj file.tar.bz2 has 'j' as the argument to '-f', but tar xfj file.tar.bz2 considers 'file.tar.bz2' to be the argument to 'f'. To avoid this confusion, always put the 'f' last: tar xjf file.tar.bz2 and tar -xjf file.tar.bz2 really do mean the same thing.
It's also worth noting that for many tar programs,
the first argument MUST BE the mode argument ('x', 'c', 't',
'r', 'u', and sometimes 'd' or 'A'), that is
tar xvjf file.tar.bz2 GOOD
but
tar jxvf file.tar.bz2 BADMy 'bsdtar' implementation, in particular, requires that the first option be a mode specifier (because it allows it to provide better feedback about nonsense options and handles some odd cases where options don't have quite the same meaning in different modes).
Tim
_______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"

