this post was submitted on 07 May 2025
1105 points (96.9% liked)

Programmer Humor

23119 readers
780 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] firelizzard@programming.dev 28 points 1 day ago (5 children)

I’ve never understood why people are so intimidated by tar

[–] MajinBlayze@lemmy.world 63 points 1 day ago (2 children)
[–] QuadratureSurfer@lemmy.world 32 points 1 day ago (1 children)

Thanks! This will definitely help me to remember it from now on.

Me 6 months from now:

tar -EZVF

[–] endeavor@sopuli.xyz 4 points 1 day ago* (last edited 1 day ago)

Me in 6 months "how to install winzip using terminal"

[–] zurohki@aussie.zone 16 points 1 day ago (1 children)

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.

[–] MajinBlayze@lemmy.world 8 points 1 day ago (1 children)

That doesn't give me a memorable mnemonic though.

[–] exu@feditown.com 9 points 1 day ago* (last edited 1 day ago) (1 children)
[–] anzo@programming.dev 3 points 1 day ago (1 children)

yeah, but then how am I supposed to remember "tar" ? :P

[–] exu@feditown.com 5 points 1 day ago

Tape ARchive -eXtract File

[–] merc@sh.itjust.works 1 points 17 hours ago (1 children)

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.

[–] firelizzard@programming.dev 1 points 5 hours ago (1 children)

Literally the only time I’ve ever run into that is when I was trying to manipulate the path it extracted to. In 99% of cases I’m doing tf, xf, or cf plus flags for the compression type, etc, and those differences are irrelevant.

[–] merc@sh.itjust.works 1 points 4 hours ago

I used something recently where it wasn't possible to use the traditional-style args. I think it was a "diff", which meant I needed a "-f". It wasn't a big deal, but, occasionally it does happen.

[–] spankmonkey@lemmy.world 32 points 1 day ago

It is sticky and pretty much ruins clothes.

[–] qjkxbmwvz@startrek.website 6 points 1 day ago* (last edited 1 day ago) (1 children)

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...).

[–] firelizzard@programming.dev 2 points 1 day ago* (last edited 1 day ago)

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.

[–] eager_eagle@lemmy.world 2 points 1 day ago* (last edited 1 day ago)

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.