this post was submitted on 13 Sep 2023
686 points (97.6% liked)

Programmer Humor

32588 readers
1289 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 17 points 1 year ago (1 children)
[–] [email protected] 9 points 1 year ago (1 children)

It's a folder that you put files into, but acts as a file itself. Not at all like zip.

[–] [email protected] 4 points 1 year ago (1 children)

Tar.gz is pretty much like zip. Technically tar mimics a file system more closely but like who makes use of that?

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago)

Tar mimics a filesystem more closely? Tf??????

TAR stands for Tape ARchive. It's called that because it's designed to be written to (and read from) non-seekable magnetic tape, meaning it's written linearly. The metadata for each file (name, mtime etc.) immediately precedes its contents. There is no global table of contents like you'd find on an actual filesystem. In fact, most implementations of tar don't even put the separate files on gzip boundaries meaning you can't decompress any given file without decompressing all of the files before it. With a tape backup system, you don't care, but with a filesystem you absolutely do.

PKZIP mimics the traditional filesystem structure much more closely. The table of contents is at the end instead of the beginning, which is a bit strange as filesystems go, but it is a table of contents consisting of a list of filenames and offsets into the file where they can be found. Each file in a zip archive is compressed separately, meaning you can pull out any given file from a ZIP archive without any prior state, and you can even use different compression algorithms on a per-file basis (few programs make use of this). For obvious reasons, the ZIP format prioritizes storage space over modification speed (the table of contents is a single centralized list and files must be contiguous), meaning if you tried to use it as a filesystem it would utterly suck -- but you can very readily find software that will let you read, edit, and delete files in-place as though it were a folder without rewriting the entire archive. That's not really possible with a .tar file.

You could make the argument that tar is able to more closely mimic a POSIX filesystem since it captures the UNIX permission bits and ZIP doesn't (ustar was designed for UNIX and pkzip was designed for DOS) but that's not a great metric.