How to Use the Tar Command in Linux

Managing files efficiently is a core skill for any Linux user or system administrator. When dealing with backups, transferring large directories between servers, or distributing software, the tar (Tape Archive) command is the industry standard for bundling multiple files into a single archive.

Why Use the Tar Command?

Unlike Windows, where zipping files automatically implies both bundling and compression, Linux separates these two actions. The tar command bundles files together into an archive (often called a “tarball”), and tools like gzip or bzip2 handle the compression. Tar preserves file permissions, directory structures, and ownership, making it ideal for system backups.

Step-by-Step: Creating a Compressed Archive

The most common use case is creating a gzipped tar archive (a .tar.gz file).

  1. Open your terminal emulator or connect to your server via SSH.
  2. Navigate to the parent directory of the folder you want to compress, or be prepared to use absolute paths.
  3. Run the following command: tar -czvf archive_name.tar.gz /path/to/directory

Understanding the Flags

The letters following the hyphen are crucial commands for tar:

  • c (Create): Instructs tar to create a new archive.
  • z (Gzip): Tells tar to compress the archive using gzip, saving disk space.
  • v (Verbose): Outputs a list of every file being processed, so you can monitor progress.
  • f (File): Specifies the filename of the archive. This must be the last flag before the filename.

Extracting a Tar Archive

When you need to access the files inside a tarball, you must extract them.

To extract a .tar.gz file into your current directory, use:

tar -xzvf archive_name.tar.gz

The -x flag stands for “eXtract”. To extract the files into a specific directory, append the -C flag followed by the destination path:

tar -xzvf archive_name.tar.gz -C /destination/path/

Troubleshooting Common Mistakes

If your tar command fails, consider these common pitfalls:

  • Missing the ‘f’ flag order: The -f flag must always be immediately followed by the filename. Writing tar -cfvz archive.tar.gz folder/ will fail because it tries to use ‘v’ or ‘z’ as the filename.
  • Permission denied errors: If you are archiving system files (like /etc/ or /var/log/), you will encounter permission errors. You must prepend your command with sudo to execute it with root privileges.
  • Absolute paths warning: If you use an absolute path (like /var/www/html), tar will strip the leading / to prevent accidentally overwriting system files when extracting later. This is expected and safe behaviour.

By mastering tar, you gain precise control over file bundling and compression across any Linux environment.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.