this post was submitted on 15 May 2024
880 points (98.5% liked)
linuxmemes
20774 readers
570 users here now
I use Arch btw
Sister communities:
- LemmyMemes: Memes
- LemmyShitpost: Anything and everything goes.
- RISA: Star Trek memes and shitposts
Community rules
- Follow the site-wide rules and code of conduct
- Be civil
- Post Linux-related content
- No recent reposts
Please report posts and comments that break these rules!
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
GNU tar, at least a modern one, that is the one that happens to come with my system, won't try to read from
/dev
but stdin and then complain that it's a terminal and refuse.Quoth POSIX on the
f
flag:That is GNU is compliant, here, the default is system-dependent.
f -
is required to be stdin, though, so you canbunzip2 foo.tar.bz2 | tar xf -
or such in a portable manner, don't have to rely on tar having az
option (which is nonstandard) or it auto-detecting compression (even more nonstandard). What is not standard either istar -x
: Tar doesn't take leading hyphens. Tar is one of those programs so old its command line syntax got standardised before command line syntax standards were established. OTOH it's not nearly as bad asdd
, you can interpret how tar does things in the same way asgit pull
: It's a subcommand, not a flag."one of those programs so old its...syntax got standardized before command line syntax standards were established." --This is wild to learn, but also confusing. How does tar not take leading hyphens, but I've only ever used it as such without error of any kind? Not even bragging I've been doing that for 10+ years too lol
Hmm. Actually you prompted me to dig a bit deeper: tar goes all the back to Version 7 UNIX, 1979, but the command line syntax is shared with tap, included in Version 1, man page dated to 1971-11-03. Development of C started 1972. Might've been written in B, you'd have to unearth a source archive I bet it's around somewhere. But anyway if you look through the other Version 1 commands a lot of them don't take hyphen commands,
ls
does, e.g.rm
doesn't on account of only taking file names as arguments.dd
is actually younger, Version 5, 1974, the syntax apparantly comes from IBM's JCL.Admittedly, that's all before my time.
Both BSD and GNU tar take hyphens, I don't really have any experience with anything else but a short stint with Solaris in the early 2000s (very emphatically before Sun got gobbled up by Oracle) and I don't remember hyphens tripping me up. Much unlike
killall
. And I'm apparently not alone in that.