How to Archive and Compress Files (`tar`, `gzip`, `zip`) on Arch Linux

How to Archive and Compress Files (tar, gzip, zip) on Arch Linux

When managing files on Arch Linux—or any Unix-like system—understanding how to archive and compress files is essential for organizing, backing up, and sharing data efficiently. Archiving and compression tools such as tar, gzip, and zip are core utilities that every Linux user should be familiar with. This article walks through how to use these tools on Arch Linux with practical examples and best practices.

1. Why Archive and Compress Files?

Archiving and compressing files can serve several purposes:

  • Storage efficiency: Compressed files take up less disk space.
  • Backup: Grouping files into a single archive simplifies backups.
  • Portability: Sending a single compressed file over the internet is easier than sending a folder structure.
  • Versioning: Archives can serve as snapshots of a project or system state.

While Arch Linux is a bleeding-edge distribution, it still relies on many of the traditional Unix tools for these tasks. Understanding these tools allows users to harness the full power of the Linux command line.


2. Installing Necessary Tools

Arch Linux does not always come with every utility pre-installed. Use pacman to install any missing tools.

sudo pacman -S tar gzip zip unzip
  • tar: Used to bundle files into a single archive.
  • gzip: Compresses files, often used with tar.
  • zip/unzip: A more user-friendly alternative, especially for sharing files with non-Linux users.

3. Using tar for Archiving

The tar command stands for tape archive, originally designed for writing to tape drives. Today, it’s one of the most common tools for creating archive files.

Create a Tar Archive

tar -cf archive.tar file1.txt file2.txt dir1/
  • -c: Create an archive.
  • -f: Use the archive file name (archive.tar).
  • The rest are the files and directories to include.

List Contents of a Tar Archive

tar -tf archive.tar
  • -t: List files in the archive.

Extract Files from a Tar Archive

tar -xf archive.tar
  • -x: Extract files.
  • -f: Specifies the archive to extract from.

You can also extract a specific file:

tar -xf archive.tar file1.txt

Create Archive with Verbose Output

tar -cvf archive.tar folder/
  • -v: Verbose; show progress.

4. Compressing with gzip

The gzip utility compresses a single file using the DEFLATE algorithm.

Compress a File

gzip filename.txt

This replaces filename.txt with filename.txt.gz.

Decompress a .gz File

gunzip filename.txt.gz

This restores the original file.

You can also use gzip -d:

gzip -d filename.txt.gz

Compress with -k to Keep Original

gzip -k filename.txt

The original file is retained, and filename.txt.gz is created.


5. Working with .tar.gz Files

A common practice is to create a .tar.gz file—a tarball that’s then compressed with gzip.

Create a Compressed Tarball

tar -czf archive.tar.gz folder/
  • -z: Compress using gzip.

Extract a .tar.gz File

tar -xzf archive.tar.gz

View Contents Without Extracting

tar -tzf archive.tar.gz

6. Using zip and unzip

The zip format is widely used and is more accessible for users on Windows or macOS.

Create a Zip Archive

zip archive.zip file1.txt file2.txt

To zip an entire directory recursively:

zip -r archive.zip folder/

Unzip a File

unzip archive.zip

List Contents of a Zip File

unzip -l archive.zip

Extract to a Specific Directory

unzip archive.zip -d target_directory/

7. Choosing Between tar, gzip, and zip

Featuretargzipzip
ArchivingYesNoYes
CompressionNo (alone)YesYes
Common UsageUnix systemsWith tarCross-platform
Keeps file structureYesN/AYes
GUI tools supportLimitedLimitedWidely supported
Multi-file supportYesNoYes

Use Cases:

  • Backup scripts on Linux: tar -czf is ideal.
  • Sharing files with Windows users: Use zip.
  • Compressing logs or large single files: Use gzip.

8. Practical Tips and Considerations

Use --exclude in tar

You can exclude specific files or directories:

tar -czf backup.tar.gz folder/ --exclude="folder/tmp"

Set Compression Level

With gzip, you can control the compression level (1 = fast, 9 = best):

gzip -9 filename.txt

Or with tar:

tar -czf - folder/ | gzip -9 > archive.tar.gz

Combine with Other Tools

You can use find and tar together:

find . -name "*.log" -print0 | tar -czf logs.tar.gz --null -T -

This archives all .log files.

Use pigz for Multi-core Compression

pigz is a parallel implementation of gzip. Install with:

sudo pacman -S pigz

Then use:

tar --use-compress-program=pigz -cf archive.tar.gz folder/

It significantly speeds up compression on multi-core CPUs.


9. Conclusion

Archiving and compressing files is a foundational skill in system administration and everyday Linux usage. On Arch Linux, you have access to a full suite of tools such as tar, gzip, and zip—each serving slightly different needs but often used in combination.

To summarize:

  • Use tar to archive multiple files into a single file.
  • Combine tar with gzip to create .tar.gz compressed archives.
  • Use zip for better cross-platform compatibility.
  • Learn the various flags (-c, -x, -f, -z, -r, etc.) to customize your workflow.
  • Consider tools like pigz for performance when handling large data sets.

With practice, you’ll find the combination of these tools makes it easy to manage backups, share files efficiently, and automate storage tasks on Arch Linux.