One reason is that tar supports both traditional style args “tar tf <filename.tar>” and unix-style args “tar -tf <filename.tar>” but there are subtle differences in how they work.
Nobody wants to deliberately use the wrong compression type when extracting, so modern tar will figure out the compression itself if you just point it at a file. So tar -xf filename works on almost anything. You don’t need to remember which flag to use on a .tar.bz2 file and which one for a .tar.xz file.
It is “backwards” from some other commands — usually you run copy/rsync/link from source to destination, but with tar the destination (tarball) is specified before the source (directory/files).
That, and the flags not needing dashes always just throws me for a loop.
And the icing on the cake is that I don’t use tar for tarring that often, so I lose all muscle memory (untaring a tgz or tar.bz2 is frequent enough that I can usually get that right at least…).
I almost never create a tarball, so I have to look up the syntax for that. Which is as simple as man tar. But as far as extracting it almost couldn’t be easier, tar xf <tarball> and call it a day. Or if you want to list the contents without extracting, tar tf <tarball>. Unless you’re using an ancient version of tar, it will detect and handle whatever compression format you’re using without you having to remember if you need z or J or whatever.
I got tired of looking up the options for each possible combination of archiving + compression, so today I have a “magic” bash function that can extract almost any format.
Then for compressing, I only use zip, which doesn’t need any args other than the archive name and the thing you’re compressing. It needs -r when recursing on dirs, but unlike “eXtract” and “Ze”, that’s a good mnemonic.
I feel very confident in my understanding of random 8 bit CPUs and their support chips, but asking me to center a div is like this xkcd.
tar --help
(joke)
YOU FOOL! THE ACTUAL COMMAND WAS
tar -?
That dash looks an awful lot like an em-dash
Normal:
-
Em:
–
That reminds me of this Elle Cordova short: https://youtube.com/shorts/ky0YOo7_Y0o
I’ve never understood why people are so intimidated by tar
One reason is that tar supports both traditional style args “tar tf <filename.tar>” and unix-style args “tar -tf <filename.tar>” but there are subtle differences in how they work.
tar -eXtract Ze Vucking File
Thanks! This will definitely help me to remember it from now on.
Me 6 months from now:
Me in 6 months "
how to install winzip using terminal"
Nobody wants to deliberately use the wrong compression type when extracting, so modern tar will figure out the compression itself if you just point it at a file. So
tar -xf filename
works on almost anything. You don’t need to remember which flag to use on a.tar.bz2
file and which one for a.tar.xz
file.That doesn’t give me a memorable mnemonic though.
tar -eXtract File
yeah, but then how am I supposed to remember “tar” ? :P
Tape ARchive -eXtract File
It is sticky and pretty much ruins clothes.
It is “backwards” from some other commands — usually you run copy/rsync/link from source to destination, but with tar the destination (tarball) is specified before the source (directory/files).
That, and the flags not needing dashes always just throws me for a loop.
And the icing on the cake is that I don’t use tar for tarring that often, so I lose all muscle memory (untaring a tgz or tar.bz2 is frequent enough that I can usually get that right at least…).
I almost never create a tarball, so I have to look up the syntax for that. Which is as simple as
man tar
. But as far as extracting it almost couldn’t be easier,tar xf <tarball>
and call it a day. Or if you want to list the contents without extracting,tar tf <tarball>
. Unless you’re using an ancient version of tar, it will detect and handle whatever compression format you’re using without you having to remember if you needz
orJ
or whatever.I got tired of looking up the options for each possible combination of archiving + compression, so today I have a “magic” bash function that can extract almost any format.
Then for compressing, I only use
zip
, which doesn’t need any args other than the archive name and the thing you’re compressing. It needs-r
when recursing on dirs, but unlike “eXtract” and “Ze”, that’s a good mnemonic.