this post was submitted on 07 May 2025
1150 points (96.7% liked)

Programmer Humor

30188 readers
1153 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 10 months ago (5 children)

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

[–] MajinBlayze@lemmy.world 67 points 10 months ago (3 children)
[–] QuadratureSurfer@lemmy.world 34 points 10 months ago (1 children)

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

Me 6 months from now:

tar -EZVF

[–] zurohki@aussie.zone 18 points 10 months 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 10 months ago (1 children)

That doesn't give me a memorable mnemonic though.

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

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

[–] exu@feditown.com 6 points 10 months ago

Tape ARchive -eXtract File

[–] lord_ryvan@ttrpg.network 1 points 9 months ago

I was about to say tar -CompressZeVuckingFile; great mnemonic and I use it every time!

[–] spankmonkey@lemmy.world 32 points 10 months ago

It is sticky and pretty much ruins clothes.

[–] qjkxbmwvz@startrek.website 7 points 10 months ago* (last edited 10 months 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 10 months ago* (last edited 10 months ago) (1 children)

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.

[–] lord_ryvan@ttrpg.network 1 points 9 months ago* (last edited 9 months ago)

It can be easier if you're used to the dash before the arguments; it's optional but you can put them:

tar -cf   # Compress File
tar -xf   # Xtract File
[–] eager_eagle@lemmy.world 2 points 10 months ago* (last edited 10 months 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.

[–] merc@sh.itjust.works 1 points 10 months 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 10 months 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 10 months ago (1 children)

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.

[–] firelizzard@programming.dev 2 points 9 months ago

I’m not saying it doesn’t happen. This thread started because I said I’ve never understood why people talk like tar is some indecipherable black magic. Common tasks are easy and there’s a man page for everything else.