bzip2

bzip2

The bzip2 command in Unix and Linux is used for compressing and decompressing files using the Burrows-Wheeler block-sorting text compression algorithm and Huffman coding. It offers high compression ratios and is commonly used to compress large files for storage or transmission.

Basic Usage

The basic syntax for the bzip2 command is:

bzip2 [options] [file(s)]
  • options: Optional command-line options to control the compression level, verbosity, and other settings.

  • file(s): The name(s) of the file(s) to compress or decompress.

Examples

Compressing a File

To compress a file using bzip2:

bzip2 filename.txt

This command compresses filename.txt and creates a compressed file filename.txt.bz2.

Decompressing a File

To decompress a .bz2 file:

bzip2 -d filename.txt.bz2

This command decompresses filename.txt.bz2 and restores it to filename.txt.

Compressing with Maximum Compression

To achieve maximum compression (slower but smaller file size):

bzip2 -9 filename.txt

This command compresses filename.txt with the highest compression level (-9), resulting in the smallest possible file size.

Options

Compression Levels

  • -1 to -9: Specify the compression level (1 for fastest compression, 9 for best compression ratio).

Decompression

  • -d: Decompress the specified .bz2 file.

Verbose Output

  • -v: Verbose mode, display compression statistics.

Keep Original File

  • -k: Keep the original file after compression or decompression.

Test Compression Integrity

  • -t: Test the integrity of compressed files.

Practical Use Cases

Compressing Large Files

To compress large data files for archiving or transmission:

bzip2 -9 largefile.dat

This command compresses largefile.dat with maximum compression to save storage space.

Handling Multiple Files

To compress multiple files into separate .bz2 archives:

bzip2 -z file1.txt file2.txt

This command compresses file1.txt and file2.txt into file1.txt.bz2 and file2.txt.bz2, respectively.

Automating Compression with find

To compress all .log files in a directory and its subdirectories:

find /path/to/logs -name "*.log" -exec bzip2 {} \;

This command uses find to locate all .log files under /path/to/logs and compresses each one with bzip2.

Summary

The bzip2 command is a robust tool for compressing and decompressing files using the Burrows-Wheeler algorithm in Unix and Linux systems. It offers options for controlling compression levels, verbosity, and file integrity testing, making it versatile for various compression tasks. Understanding its usage and options can help you effectively manage file compression and storage on your system.

help

   usage: bzip2 [flags and input files in any order]

   -h --help           print this message
   -d --decompress     force decompression
   -z --compress       force compression
   -k --keep           keep (don't delete) input files
   -f --force          overwrite existing output files
   -t --test           test compressed file integrity
   -c --stdout         output to standard out
   -q --quiet          suppress noncritical error messages
   -v --verbose        be verbose (a 2nd -v gives more)
   -L --license        display software version & license
   -V --version        display software version & license
   -s --small          use less memory (at most 2500k)
   -1 .. -9            set block size to 100k .. 900k
   --fast              alias for -1
   --best              alias for -9

   If invoked as `bzip2', default action is to compress.
              as `bunzip2',  default action is to decompress.
              as `bzcat', default action is to decompress to stdout.

Last updated