Saturday, March 15, 2008

Linux Tar-ing and un-tar-ing tarballs, gz, and bz2 archives Tutorial

What Is A Tarball?

A tarball is an archive of files and/or directories. If a tarball is gzip'd or bz2'd, then it has been compressed.


 

"Untar" A File

If you are dealing with a tarball (example.tar) file, you can extract the files from it using:

tar xvf example.tar

If the tarball has been gzipped(example.tar.gz), you can extract the files from it using:

tar xvfz example.tar.gz

If the tarball has been gzipped(example.tgz), you can extract the files from it using:

tar xzvf example.tgz

If the tarball has been compressed with bzip2(example.tar.bz2), then you will need to have bzip2 installed. ( Most servers will have this, but if yours does not, visit <a href="http://www.bzip.org/">http://www.bzip.org/</a> ) If all is well and bzip2 is installed, you can extract the files from it using:

tar yxf example.tar.bz2

Sometimes you only want to extract certain directories from the tarball. An example of doing so would be:

tar xvzf example.tar.gz */DIRECTORY_YOU_WANT_REPLACES_THIS_TEXT/*


 

List The Contents

If you would like to see what is inside a tarball, you can use the command:

tar tvf example.tar

If you would like to see what is inside a gzip'd tarball, you can use the command:

tar tzf example.tar.gz


 

Tar It Up!

If you would like to tarball some files, you can do so by using the command:

tar cvf filename.tar files/directories

If you would like to tarball some files AND compress them (with gzip), you can do so by using the command:

tar cfz blah.tar.gz files/directories


 

man tar

NAME
       tar - The GNU version of the tar archiving utility

SYNOPSIS
       tar <operation> [options]

       Operations:
       [-]A --catenate --concatenate
       [-]c --create
       [-]d --diff --compare
       [-]r --append
       [-]t --list
       [-]u --update
       [-]x --extract --get
       --delete

       Common Options:
       -C, --directory DIR
       -f, --file F
       -j, --bzip2
       -p, --preserve-permissions
       -v, --verbose
       -z, --gzip

       All Options:
       [  --atime-preserve  ]  [ -b, --blocking-factor N ] 
       [ -B, --read-full-records ] [ --backup BACKUP-TYPE ]
       [ --block-compress ] [ -C, --directory DIR ] [ --check-links ] 
       [ --checkpoint ] [ -f, --file [HOSTNAME:]F  ]
       [  -F,  --info-script  F  --new-volume-script  F  ]
       [  --force-local   ] [ --format FORMAT ]
       [ -g, --listed-incremental F ] [ -G, --incremental ]
       [ --group GROUP ] [ -h, --dereference ] [ --help ]
       [ -i,  --ignore-zeros  ]  [  --ignore-case  ]
       [ --ignore-failed-read  ]  [ --index-file FILE ] [ -j, --bzip2 ]
       [ -k, --keep-old-files ] [ -K, --starting-file F ]
       [ --keep-newer-files ] [ -l, --one-file-system ]
       [ -L, --tape-length N ] [ -m, --touch, --modification-time ]
       [  -M, --multi-volume  ]  [  --mode  PERMISSIONS  ]
       [ -N, --after-date DATE, --newer DATE ] [ --newer-mtime DATE ]
       [ --no-anchored ] [ --no-ignore-case ] [ --no-recursion ]
       [ --no-same-permissions ] [ --no-wildcards ]
       [  --no-wildcards-match-slash  ] [ --null     ] [ --numeric-owner ]
       [ -o, --old-archive, --portability, --no-same-owner ]
       [ -O, --to-stdout ] [ --occurrence NUM ] [ --overwrite ]
       [ --overwrite-dir ] [ --owner USER ]
       [ -p, --same-permissions, --pre-serve-permissions  ]
       [  -P,  --absolute-names  ]  [  --pax-option  KEYWORD-LIST ]
       [ --posix ] [ --preserve ] [ -R, --block-number ]
       [ --record-size SIZE ] [ --recursion ] [ --recursive-unlink ]
       [ --remove-files ]  [  --rmt-command CMD  ]
       [  --rsh-command  CMD  ] [ -s, --same-order, --preserve-order ]
       [ -S, --sparse ] [ --same-owner ] [ --show-defaults ]
       [ --show-omitted-dirs ]
    [ --strip-components NUMBER, --strip-path NUMBER (1) ]
       [ --suffix SUFFIX ] [ -T, --files-from  F ] [ --totals   ]
    [ -U, --unlink-first ] [ --use-compress-program PROG ] [ --utc ]
    [ -v, --verbose ] [ -V, --label NAME ] [ --version  ] [ --volno-file F ]
       [ -w, --interactive, --confirmation ] [  -W,  --verify  ]
    [ --wildcards  ] [  --wildcards-match-slash  ]  [  --exclude PATTERN ]
       [ -X, --exclude-from FILE ] [ -Z, --compress, --uncompress ]
       [ -z, --gzip, --gunzip, --ungzip ] [ -[0-7][lmh] ]

       (1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-components

DESCRIPTION
       This manual page documents the GNU version of tar, an archiving program 
    designed to store and extract files from an archive  file  known  as  a
    tarfile.  A tarfile may be made on a tape drive, however, it is also
    common to write a tarfile to a normal file.  The first argument to tar
    must be one of the options Acdrtux, followed by any optional functions.
    The final arguments to tar are the names of the files or directories 
    which should be archived.  The use of a directory name always implies 
    that the subdirectories below should be included in the archive.

EXAMPLES
       tar -xvf foo.tar
              verbosely extract foo.tar

       tar -xzf foo.tar.gz
              extract gzipped foo.tar.gz

       tar -cjf foo.tar.bz2 bar/
              create bzipped tar archive of the directory bar called foo.tar.bz2

       tar -xjf foo.tar.bz2 -C bar/
              extract bzipped foo.tar.bz2 after changing directory to bar

       tar -xzf foo.tar.gz blah.txt
              extract the file blah.txt from foo.tar.bz2

FUNCTION LETTERS
       One of the following options must be used:

       -A, --catenate, --concatenate
              append tar files to an archive

       -c, --create
              create a new archive

       -d, --diff, --compare
              find differences between archive and file system

       -r, --append
              append files to the end of an archive

       -t, --list
              list the contents of an archive

       -u, --update
              only append files that are newer than the existing in archive

       -x, --extract, --get
              extract files from an archive

       --delete
              delete from the archive (not for use on mag tapes!)

COMMON OPTIONS
       -C, --directory DIR
              change to directory DIR

       -f, --file [HOSTNAME:]F
              use archive file or device F (default "-", meaning stdin/stdout)

       -j, --bzip2
              filter archive through bzip2, use to decompress .bz2 files

       -p, --preserve-permissions
              extract all protection information

       -v, --verbose
              verbosely list files processed

       -z, --gzip, --ungzip
              filter the archive through gzip

ALL OPTIONS
       --atime-preserve
              donât change access times on dumped files

       -b, --blocking-factor N
              block size of Nx512 bytes (default N=20)

       -B, --read-full-blocks
              reblock as we read (for reading 4.2BSD pipes)

       --backup BACKUP-TYPE
              backup files instead of deleting them using BACKUP-TYPE simple or numbered
       --block-compress
              block the output of compression program for tapes

       -C, --directory DIR
              change to directory DIR

       --check-links
              warn if number of hard links to the file on the filesystem mismatch the 
     number of links recorded in the archive

       --checkpoint
              print directory names while reading the archive

       -f, --file [HOSTNAME:]F
              use archive file or device F (default "-", meaning stdin/stdout)

       -F, --info-script F --new-volume-script F
              run script at end of each tape (implies --multi-volume)

       --force-local
              archive file is local even if has a colon

       --format FORMAT
              selects output archive format
              v7 - Unix V7
              oldgnu - GNU tar <=1.12
              gnu - GNU tar 1.13
              ustar - POSIX.1-1988
              posix - POSIX.1-2001

       -g, --listed-incremental F
              create/list/extract new GNU-format incremental backup

       -G, --incremental
              create/list/extract old GNU-format incremental backup

       -h, --dereference
              donât dump symlinks; dump the files they point to

       --help like this manpage, but not as cool

       -i, --ignore-zeros
              ignore blocks of zeros in archive (normally mean EOF)

       --ignore-case
              ignore case when excluding files

       --ignore-failed-read
              donât exit with non-zero status on unreadable files

       --index-file FILE
              send verbose output to FILE instead of stdout

       -j, --bzip2
              filter archive through bzip2, use to decompress .bz2 files

       -k, --keep-old-files
              keep existing files; donât overwrite them from archive

       -K, --starting-file F
              begin at file F in the archive

       --keep-newer-files
              do not overwrite files which are newer than the archive

       -l, --one-file-system
              stay in local file system when creating an archive

       -L, --tape-length N
              change tapes after writing N*1024 bytes

       -m, --touch, --modification-time
              donât extract file modified time

       -M, --multi-volume
              create/list/extract multi-volume archive

       --mode PERMISSIONS
              apply PERMISSIONS while adding files (see chmod(1))

       -N, --after-date DATE, --newer DATE
              only store files newer than DATE

       --newer-mtime DATE
              like --newer, but with a DATE
       --no-anchored
              match any subsequenceof the nameâs components with --exclude

       --no-ignore-case
              use case-sensitive matching with --exclude

       --no-recursion
              donât recurse into directories

       --no-same-permissions
              apply userâs umask when extracting files instead of recorded permissions

       --no-wildcards
              donât use wildcards with --exclude

       --no-wildcards-match-slash
              wildcards do not match slashes (/) with --exclude

       --null --files-from reads null-terminated names, disable --directory

       --numeric-owner
              always use numbers for user/group names

       -o, --old-archive, --portability
              like --format=v7; -o exhibits this behavior when creating an 
     archive (deprecated behavior)

       -o, --no-same-owner
              do not attempt to restore ownership when extracting; -o exhibits 
     this behavior when extracting an archive

       -O, --to-stdout
              extract files to standard output

       --occurrence NUM
              process only NUM occurrences of each named file; used with --delete, 
     --diff, --extract, or --list

       --overwrite
              overwrite existing files and directory metadata when extracting

       --overwrite-dir
              overwrite directory metadata when extracting

       --owner USER
              change owner of extraced files to USER

       -p, --same-permissions, --preserve-permissions
              extract all protection information

       -P, --absolute-names
              donât strip leading â/âs from file names

       --pax-option KEYWORD-LIST
              used only with POSIX.1-2001 archives to modify the way tar handles 
     extended header keywords

       --posix
              like --format=posix

       --preserve
              like --preserve-permissions --same-order

       -R, --record-number
              show record number within archive with each message

       --record-size SIZE
              use SIZE bytes per record when accessing archives

       --recursion
              recurse into directories

       --recursive-unlink
              remove existing directories before extracting directories of the 
     same name

       --remove-files
              remove files after adding them to the archive

       --rmt-command CMD
              use CMD instead of the default /usr/sbin/rmt

       --rsh-command CMD
              use remote CMD instead of rsh(1)

       -s, --same-order, --preserve-order
              list of names to extract is sorted to match archive

       -S, --sparse
              handle sparse files efficiently
       --same-owner
              create extracted files with the same ownership

       --show-defaults
              display the default options used by tar

       --show-omitted-dirs
              print directories tar skips while operating on an archive

       --strip-components NUMBER, --strip-path NUMBER
              strip NUMBER of leading components from file names before extraction

              (1) tar-1.14 uses --strip-path, tar-1.14.90+ uses --strip-components

       --suffix SUFFIX
              use SUFFIX instead of default â~â when backing up files

       -T, --files-from F
              get names to extract or create from file F

       --totals
              print total bytes written with --create

       -U, --unlink-first
              remove existing files before extracting files of the same name

       --use-compress-program PROG
              access the archive through PROG which is generally a compression 
     program

       --utc  display file modification dates in UTC

       -v, --verbose
              verbosely list files processed

       -V, --label NAME
              create archive with volume name NAME

       --version
              print tar program version number

       --volno-file F
              keep track of which volume of a multi-volume archive its working 
     in FILE; used with --multi-volume 

       -w, --interactive, --confirmation
              ask for confirmation for every action

       -W, --verify
              attempt to verify the archive after writing it

       --wildcards
              use wildcards with --exclude

       --wildcards-match-slash
              wildcards match slashes (/) with --exclude

       --exclude PATTERN
              exclude files based upon PATTERN

       -X, --exclude-from FILE
              exclude files listed in FILE

       -Z, --compress, --uncompress
              filter the archive through compress

       -z, --gzip, --gunzip, --ungzip
              filter the archive through gzip

       --use-compress-program PROG
              filter the archive through PROG (which must accept -d)

       -[0-7][lmh]
              specify drive and density

BUGS
       The  GNU  folks,  in general, abhor man pages, and create info documents 
    instead.  The maintainer of tar falls into this category.  Thus this man 
    page may not be complete, nor current, and was included in the Red Hat CVS 
    tree because  man  is  a  great  tool  :).   This man page was first taken 
    from Debian Linux and has since been lovingly updated here.

REPORTING BUGS
       Please report bugs via https://bugzilla.redhat.com

SEE ALSO
       The full documentation for tar is maintained as a Texinfo manual.  If 
    the info and tar programs are properly installed at your site, the command

              info tar

       should give you access to the complete manual.

AUTHORS
       Debian Linux http://www.debian.org/
       Mike Frysinger <vapier@gentoo.org>

GNU                                                      Oct 2004                                                   TAR(1)


 

No comments: