Skip to content

Linux File Compression and Backup

📦 UNIX File Compression & Backup Guide

UNIX systems provide several utilities for archiving and compressing files. This guide covers:

  • tar – Tape Archiver
  • cpio – Copy In/Out Archiver
  • compress & gzip – File Compression Tools
  • Modern Alternatives – bzip2, xz, zip, and rsync

1. tar – Tape Archiver

tar is used to bundle multiple files and directories into a single archive file. It preserves file metadata (permissions, ownership, timestamps) but does not compress by default.

Basic Syntax

Terminal window
tar [options] [archive-file] [files...]

Common Options

OptionMeaning
-cCreate a new archive
-xExtract files from an archive
-tList archive contents
-vVerbose output (show processed files)
-fSpecify archive file name
-zCompress with gzip
-jCompress with bzip2
-JCompress with xz
--exclude=PATTERNExclude files matching pattern

Examples

  • Create an archive:
Terminal window
tar -cvf backup.tar /home/user/documents
  • Create and compress with gzip:
Terminal window
tar -czvf backup.tar.gz /home/user/documents
  • List contents:
Terminal window
tar -tvf backup.tar
  • Extract archive:
Terminal window
tar -xvf backup.tar
  • Extract to a specific directory:
Terminal window
tar -xvf backup.tar -C /tmp/restore

2. cpio – Copy In/Out Archiver

cpio reads and writes archives from standard input/output. It’s often used with find for flexible file selection.

Basic Syntax

Terminal window
cpio [options] < archive
cpio [options] > archive

Common Options

OptionMeaning
-oCreate archive (copy-out mode)
-iExtract archive (copy-in mode)
-tList archive contents
-vVerbose output
-dCreate directories as needed
-uOverwrite existing files
-HSpecify archive format (tar, crc, odc, etc.)

Examples

  • Create a tar-format archive from current directory:
Terminal window
find . -depth -print | cpio -ov -Htar > backup.tar
  • List contents:
Terminal window
cpio -tv < backup.tar
  • Extract files:
Terminal window
cpio -idv < backup.tar
  • Extract and overwrite existing files:
Terminal window
cpio -iduv < backup.tar

3. compress & gzip – File Compression

These tools compress individual files.

compress

  • Produces .Z files.
  • Compress:
Terminal window
compress file.txt
  • Decompress:
Terminal window
compress -d file.txt.Z

gzip

  • Produces .gz files.
  • Compress:
Terminal window
gzip file.txt
  • Decompress:
Terminal window
gzip -d file.txt.gz
  • View compressed file without decompressing:
Terminal window
zcat file.txt.gz

4. Modern Alternatives & Improvements

While tar, cpio, compress, and gzip are still widely used, modern tools offer better compression ratios and faster performance.

ToolExtensionProsExample
bzip2.bz2Better compression than gziptar -cjvf backup.tar.bz2 dir/
xz.xzVery high compression ratiotar -cJvf backup.tar.xz dir/
zip.zipCross-platform compatibilityzip -r backup.zip dir/
rsyncN/AIncremental backups over networkrsync -avz /source user@host:/backup

5. Best Practices

  • Always test restores to ensure backups are valid.
  • Use compression for storage efficiency, but note that it increases CPU usage.
  • For large datasets, consider rsync or borgbackup for incremental backups.
  • Store backups offsite or in cloud storage for disaster recovery.