[Techtalk] 'nother obvious newbie question

Kai MacTane kmactane at GothPunk.com
Tue Oct 2 10:47:26 EST 2001

At 10/1/01 09:29 PM , Rachel Herold wrote:
>okay, I get it installed, how come I can't figure out how to read the dern
>doc files?  I found a whole set of help files ending in .gz but haven't been
>able to figure out how to read/open them.  I've tried all the obvious
>things, a few non-obvious things (at least non-obvious to a windows person),
>but I give up and decided I shouldn't waste so much time (2 hours is enough)
>when I can ask someone.

Ah. What do with a .gz file is fairly obvious to an experienced Unix 
person... <wry grin> You just do a "tar -xvzf" on the sucker.

("Oh, of *course*," all the Windows people say in a voice heavy with sarcasm.)

Okay, here's the deal: the .gz extension means the file is a gzip, or GNU 
zip, file. (As you get used to Linux, you'll come to see that nearly 
anything with a "g" prefix means GNU-whatever.) This is the GNU equivalent 
of a WinZip file -- compressed, and (usually) containing multiple 
sub-files, even entire directory structures.

There are various ways to deal with such things (indeed, I sometimes think 
Perl's motto of "There's more than one way to do it" should have been 
Unix's instead), but the one I tend to use is:

    tar -xvzf file-to-open

This will unpack files and directories into the directory you're already 
in, but the convention in Unix-land is to make your archive files (gzips 
and others) so that the first thing they'll create is a subdirectory with 
an obvious name (usually matching the name of the zip-file itself, minus 
extension), and then put all other files and structures into there.

The reason I use that particular command line is because it will work just 
fine on practically all the various archive files you'll find: in addition 
to .gz, there are .tar.Z, .tgz, .tar.gz, and I think maybe one or two 
similar combinations. Plus there are just plain .tar files, which are 
essentially like a Windows Zip file (in the sense of packing multiple files 
into one), but with *no* compression. ("tar" in this case, stands for "Tape 
ARchive", and was originally designed to back stuff up to mag-tape.)

At any rate, if you have GNU tar on your system (which you almost certainly 
do if you're running any Linux distro), then "tar -xvzf archive-file" will 
work, without any reference to exactly how the thing was packed up.

A quick description of just what's going on in that command line is:

tar: the name of the command that both tars and untars stuff.
  -x: eXtract a file (other main options are Create and lisT file;
      see below for more on that)
  -v: Do it Verbosely (list files as tar is operating; not strictly
      necessary, but nice to have for some output).
  -z: Use Zip compression (i.e., if creating a file, compress it in
      addition to just glomming all the files into one; if extracting
      or listing, realize that the file was compressed, and use the
      Zip algorithm to uncompress).
  -f: What file to act on; must be followed *immediately* by the name
      of the archive file.

The fact that -f must be followed immediately by the name of the archive 
file is only of importance when you're creating a new archive. In that 
case, the command line is:

    tar -cvzf file-to-create  filespec-to-compress

"filespec" in that case means you can include wildcards. Most of the time, 
you'll just compress one entire subdirectory, so as to create the kind of 
archive that opens up as described above.

The -t flag is useful if you want to get an idea of what's in an archive 
file without actually opening the whole thing: it will simply list all the 
files inside the archive, then exit. You'll usually want to pipe this 
through your favorite pager program (such as more, or less), so:

    tar -tvzf file-I-just-downloaded | less

Hope that gives you the information you need!

                                                 --Kai MacTane
"Playing dead and sweet submission,
  Cracks the whip deadpan on cue."
                                                 --Siouxsie and the

More information about the Techtalk mailing list