Basic tar usage (GNU tar)

As you probably know tar is designed to store and extract files from an archive file (a tarfile). Here I’ll show you some basic usage of this tool…

Here we go!

Archive a set of files:

tar -cvf tarfile.tar /var/log/syslog /var/log/messages

Archive and compress (gzip) a set of files:

tar -cvzf file.tar.gz /var/log/syslog /var/log/messages

Archive and compress (bzip2) a set of files:

tar -cvjf file.tar.bz2 /var/log/syslog /var/log/messages

Extract a tar file:

tar -xvf file.tar
tar -xvzf file.tar.gz
tar -xvjf file.tar.bz2

Display the content of a tar file:

tar -tvf file.tar
tar -tvzf file.tar.gz
tar -tvjf file.tar.bz2

Replace a file in an existing tar file:

tar -rvf tarfile.tar filetoreplace

Update a file in an existing tar file:

tar -uvf tarfile.tar newfile

Copy all files in one directory to another directory on local host:

cd /etc; tar cf – . | (cd /etc.bak; tar xvpf -)

Copy a directory from one host to another and preserve ownership and permissions:

tar -cf – /var/amavisd | ssh user@otherhost tar -xf -

One Response to “Basic tar usage (GNU tar)”

  1. morpheo says:

    Another approach would be:

    tar cfp – ./var/mybackup | ssh user@remotehost (cd /var/mybackup; tar xvfp -)

    … where p retains permissions and ownership.

Leave a Reply

You must be logged in to post a comment.