UNIX tar issues, path truncation, unicode (2011)
new --help option
Discovered, that GNU tar now has a --help option. So, instead of typing man tar, you type tar --help. Not sure if this has been there for long or what.
Much better. I always hated the “man” faak. You can never be sure if the man page correspond to the version you are using, and because the doc is separate, it's also pain to maintain for dev, tends to get out of sync.
why tar no hyphen
Another thing about tar is that i never figured out why its syntax doesn't use the dash. You use tar xvf myfile.tar instead of tar -xvf myfile.tar. Many years ago, with dash won't work. Not sure all tar programs support that today.
tar long file path truncation
Also, you can't talk about tar without talking about unix line truncation problem. Tar used to truncate your file names if the path is long (For example, ~120 chars).
tar unicode issues
Something i still wanted to test but never got to it. Does current version of tar preserve file name that has lots Unicode character? (For example, Chinese, math symbols.)
According to tar (file format), there seems to be a new spec in “POSIX.1-2001” that addressed file name length and charset encoding, and is implemented by GNU tar in 2004.
tarbomb
The Wikipedia article turns out quite informative. One thing it mentioned is the “tarbomb”. That is, when untar, the file gets scattered all over your dir, or even to parent dirs, and OVERWRITES your files. This is a extreme pain in the ass, and still happens today.
tar no no random access
Another problem interesting is that tar doesn't support table of contents so no random access. If you need to list files or extract one file, you need to read thru it from the beginning.
Here's another good resource discussing tar's problems.
In recent month i read that Google still use tape drive as one of their backup. I wonder if they use tar as the file format.
abandon tar
Alright, today, i'm deprecating tar for any personal use. If you are making decisions for yourself, i suggest zip as replacement. Zip is open source and well supported. Adopted by Java (in its jar file) and others. Gzip is also well supported by the industry. (For example, adopted in Sitemap. [see Creating A Sitemap With Emacs Lisp]