Was trying to extract a totally legit copy of Skate 3 I downloaded today to play on my Steam Deck
tar -xvf or we all kill
Yes. However, if you had skipped the -f, it would have been valid. Without the filename argument, it assumes it should extract from the tape drive (TAR = Tape ARchive). The tape device is probably something like /dev/rmt0, but you don’t need to specify that. Using the -f is technically an exception which means “instead of extracting from the tape like you’d normally do, pretend that this file is the tape device instead.”
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:
Use the first file operand […] as the name of the archive instead of the system-dependent default.
That is GNU is compliant, here, the default is system-dependent. f -
is required to be stdin, though, so you can bunzip2 foo.tar.bz2 | tar xf -
or such in a portable manner, don’t have to rely on tar having a z
option (which is nonstandard) or it auto-detecting compression (even more nonstandard). What is not standard either is tar -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 as dd
, you can interpret how tar does things in the same way as git pull
: It’s a subcommand, not a flag.
I definitely still killed us all, but at the same time how are you supposed to know any of the filenames if none are given from the comic? I guess my real answer is to ‘tar -xvf’ then hit tab with hopes of decent file completion functionality lol