Top 15 file compression utilities in Linux

A Brief introduction to file compression

File compression is a routine task for most of the Administrators and normal users, to save disk space and to move data from one location to another safer location, this compression utility is used. from historical point of view  tar utility was developed  to get sequential data backup and it was stored in magnetic tape drives. To send data via internet the compression utility play an important role, it can hold multiple files together and will reduce the overall file size, this can save both the time and internet bandwidth, Linux comes with very quick and effective tools which can reduce file sizes from 40 to 80 percent. In this article we will discuss top 15 utilities in Linux available for users.

Scenario

Although maximum of the data compression tools are available with all flavors of Linux, but we will be using Mint 17 Linux for demonstration purpose, some of the tools are command line based and some of them are with GUI, let us discuss them one by one.

  1. tar file compression

    The word tar is extracted from tape archive, this is most popular compression and decompression tool for Linux administrators, it is used to archive in multiple file formats like  gzip, bzip2 or lzip etc.

Install tar in Debian/Ubuntu

# apt-get install tar

Install tar in CentOS

# yum install tar

First argument with tar command must be anyone from Acdrtux. 

Example

 

Crate a file of 512MB size

# fallocate -l 512M um.img

Create archive

# tar -cvfz um.tar.gz um.img

-c – to create archive, -v – verbose, -f  for archiving file, -z to compress files in gzip format.

Use man utility for more details.

2. gzip file compression

The gzip tool is most popular and fast file compression utility in Linux. Gzip tool keep original file name the extension of compressed file .gz and time stamp. Usually comes as inbuilt package for all distributions but can be install easily.

For ubuntu

# apt-get install gzip

For CentOS

# yum install gzip

Examples

# gzip examplefile

To get details about compressed file

 # gzip -l examplefile.gz 
 compressed uncompressed ratio uncompressed_name
 203559 209715200 99.9% examplefile

To unzip compressed file

#gzip -d examplefile.gz

dns(128)

To compress all file and directories recursively

# gzip -r examplefile

The above utility is not recommended to use, otherwise it can create complications while recovering the data.

3. lzma file compression

Lzma is compression tool like zip or tar, but it perform quick in comparison to bzip, comes as  builtin for all Linux distributions.

To create a archive, use following command

 # lzma -c --stdout examplefile> examplefile.lzma

To extract data

# lzma -d --stdout examplefile.lzma >examplefile

Although lzma is a strong  tool but it is not so popular among Linux users.

4. xz file compression

XZ is successor of the lzma utility, it can only compress single file but can not compress multiple file in a single command.  This utility was introduced in 2009 so there is a possibility that it can not be supported on older Linux versions, but it is provided with all of the latest Linux operating systems, it will addd .xz extension to compression file automatically.

Example

To compress a file

# xz examplefile

To decompress a file

# xz -d examplefile.xz

5. bzip2 file compression

Bzip2 utility perform more faster then gzip, it compress files and folders more compactly. It required more RAM during compressing files,  to reduce memory consumption, pass -s flag in option.

Example
# bzip2 examplefile

Pass -s flag

# bzip2 -s examplefile

To decompress the .bz2 compressed file

# bzip2 -d examplefile.bz2

Or

# bunzip2 examplefile.bz2

Use -v option to verbose

# bzip2 -v examplefile
 examplefile: 1184831.638:1, 0.000 bits/byte, 100.00% saved, 209715200 in, 177 out.

6. pax file compression

Pax is less know archiving tool in Linux, it perform fast and is it is more than just a compressor, it can real archive it can copy files remotely, pax is not installed by default in Ubuntu/Mint Linux.

Install package

# apt-get install pax
Example
# pax -wf examplefile.tar examplefile

w option to write archive, f for file.

To compress file in bzip or gzip use -z option

# pax -wf examplefile.tar.gz examplefile

List content of archive

# pax -f examplefile.tar

Extract contents of archive

# pax -r <examplefile.tar

7. Peazip file compressor

Peazip is a cross platform compression utility, it is based upon open source utilities like 7zip, p7zip, freearch etc, it supports more then 180 file formats. A good alternative to WinRar.

Installation

Download package and install

# wget sourceforge.net/projects/peazip/files/5.3.1/peazip_5.3.1.LINUX.Qt-2_i386.deb

Install package

 # dpkg -i peazip_5.3.1.LINUX.Qt-2_i386.deb

dns(129)

8. 7zip file compressor

7Zip file compressor is an open source utility which was developed originally for Microsoft Windows, it supports multiple file compression formats and known for high file compression, it can be used for compressing multiple files with a single command.

Installation
# apt-get install p7zip-full p7zip-rar
Example
# 7z  a examplefile.7z examplefile

dns(130)

To extract file

# 7z  e examplefile.7z

9. shar file compression

Shar is a command line utility which can be used to compress test files, shar can be defined as “shell archive”. A simple and quick file archiving utility can be useful to get archive of shell scripts.

Installation
# apt-get install sharutils

Example

Compress file

# shar examplefile > examplefile.shar

Decompress file

# unshar examplefile.shar

10. cpio file compression

Can be defined as copy input and output, it read a list of file name line by line in input and archive files in output. Its a classic command and comes as built in.

Example
# cd /tmp
ls | cpio -ov >/home/username/backup.cpio
Decompress archive
# cpio -idv <backup.cpio

11. ar

The ancestor or predecessor of rar, still used in Debian and its derivatives, a simple archiving tools but it is not so popular command.

Example

Create archive

 # ar cvsr examplefile.a examplefile

Decompress archive

# ar -xv examplefile.a

12. ISO

Used to get a virtual disc image or .iso image  of optical drive which can be used later to burn a new disk or as some installation media for hyper version based virtualization, a very useful tool of Linux Administrators as optical drives got corrupt often therefor it is a good method to get backup of your server of software optical disc which can be utilized later.

Example
# dd if=/media/dvd of=/home/username/filename.iso

13. kgb

Kgb is a less known but effective archiving tool that is capable of compressing multiple file into a small  high compression ration archive. It supports all of the common file archive formats like zip, gzip, 7zip and rar.

Installation
# apt-get install kgb
Example
# kgb examplefile.kgb examplefile

Extract package

# kgb  x examplefile.kgb

14. Zpac

Capable to handle large files, lightweight and it was Written by Matt Mahoney in Jun 16 2010,  it propose  high standard data compression archive, it is based upon PAQ context mixing algorithms.

Installation
# apt-get install zpac
Example
# zpaq c examplefile.tar examplefile

15. File Roller

File roller is archive manger in GUI for Linux, it can create or modify archives, it can show the contents of archive,a good alternative to 7zip or winrar. supports almost all of the file formats like .iso, .lsa, 7zip, gzip, zip, zz etc. comes a built in under Mint and Ubuntu distro.

dns(131)Conclusion

The performance of compression utility may differ system to system depending upon the size of the file and the processing speed of the system, it is always recommended to get gradual data backups which should be save to some separate hard disk or another data storage device. Although a lots of data compression tools are available but you should use standard and time tested tools only.