Tar File(s) or Directories Using the Command Line

04-03-2020

There are many reasons why we might need to Tar files and directories, we might need to upload or download file to and from a server or application, archive files for later retrieval, whatever the reason here are a few helpful commands to get started.

“Taring” is simply a concept where we create a tarball of files and/or directories that are compressed and easier to manipulate and move within a system. Linux (most distros) and Mac have tar commands built into the operating system.

In the terminal a simple tar command might look like:

1
tar -czvf myphotos.tar.gz /path/to/photos

The above command will compress all files/ directories at the supplied path /path/to/photos into a single file with the given filename, myphotos.tar.gz.

Following the tar command we can pass a series of flags that tell the tar process how to compress the files and what information should be returned. Here is a breakdown of some of the more popular flags:

Flag : : Description
-c Create a tar file (.tar.gz)
-z Compression format, this will use .gzip (more common)
-j Compression format, this will use .bz2
-v Verbose output, helpful for understanding and troubleshooting
-f File to archive to
-x Extract files from a tarball

Examples:

Tar a single file

1
tar -czvf myphoto.tar.gz /path/to/special-photos/myphoto.png

Tar a directory of files

1
tar -czvf myphotos.tar.gz /path/to/photos

Tar multiple files/directories

1
tar -czvf myphotos.tar.gz /path/to/photos /another/path/to/photos /more/photos /path/to/special-photos/myphoto.png

Excluding files/directories

1
tar -czvf myphotos.tar.gz /path/to/photos --exclude="vacation"

View files in a tar file

This will list the files/directories contained within the tar file.

1
tar -ztvf myphotos.tar.gz

Extract files

1
tar -xzvf myphotos.tar.gz

Use the -C flag to extract files to a specific directory.

1
tar -xzvf myphotos.tar.gz -C ~/Desktop/

I found this article particularly useful.