Need an expert to help you with
" How To Compress And Decompress Files In Linux" ?
" How To Compress And Decompress Files In Linux" ?
How To Compress And Decompress Files In Linux
CompressionHow to Compress and decompress files in Linux…Compressing is a very useful process when backing up important files as well as sending large files over the internet. Remember that compressing an already compressed file adds extra overhead, hence, you will receive a slightly bigger file. For this reason, do not compress a compressed filed. There are lots of programs that you can use to compress and decompress files in GNU/Linux.
Check out Our Best VPS Hosting and WordPress hosting for Linux for scaling your cloud based products and applications.In this tutorial, we will teach you about two applications only.
Compress and decompress files in LinuxThe most common programs that are used to compress files in Unix-like systems are:
Compress and decompress files using Gzip program‘gzip’ is a utility which will help you compress and decompress files with ‘Lemepel-Ziv’ coding (LZ277 algorithm.
1.1 Compress filesTo compress a file called ‘dreamvps.txt’, replacing it with a gzipped compressed version, execute the following command.
$ gzip dreamvps.txtGzip should replace the original file ‘dreamvps.txt’ with a gzipped compressed version called ‘dreamvps.txt.gz’. You can also use the ‘gzip’ command in different ways. One good example is that we can create a compressed version of a particular command’s output. Look at the command below.
$ ls -l Downloads/ | gzip > dreamvps.txt.gzThe command above will create a compressed version of the directory listing of Downloads folder.
1.2 Compress files and write the output to different files (Don’t replace the original file)By default, the ‘gzip’ program will compress any given file, replacing it with a gzipped compressed version. You can, however, keep the original file and enter the output to standard output. For instance, the command below will compress ‘dreamvps.txt’ and will also enter the output to ‘output.txt.gz’.
$ gzip -c dreamvps.txt > output.txt.gzSimilarly, to decompress a gzipped file specifying the output filename.
$ gzip -c -d output.txt.gz > dreamvps1.txtThe command above will decompress the ‘output.txt.gz’ file and will enter the output to ‘dreamvps1.txt’ file. In both cases, it will not delete the original file.
1.3 Decompress filesIn order to decompress the file ‘dreamvps.txt.gz’, you will need to replace it with the original uncompressed version; our example will use the following.
$ gzip -d dreamvps.txt.gzYou can also use gunzip to decompress the files.
$ gunzip dreamvps.txt.gz
1.4 View contents of compressed files without decompressing themIf you want to view the contents of the compressed file using gzip with out decompressing it, use ‘–c’ flag like shown below.
$ gunzip -c dreamvps1.txt.gzAlternatively, you can also use the ‘zcat’ utility like in the following.
$ zcat dreamvps.txt.gzYou could also pipe the output to ‘less’ command to view the output page by page like below.
$ gunzip -c dreamvps1.txt.gz | less $ zcat dreamvps.txt.gz | lessAlternatively, there is a ‘zless’ program which will do the same function as the pipeline above.
$ zless dreamvps1.txt.gz
1.5 Compress file with gzip by specifying compression levelAnother notable advantage of ‘gzip’ is; it will support compression level. It will support 3 compression levels like shown below:
- 1– Fastest (Worst)
- 9– Slowest (Best)
- 6– Default level
$ gzip -9 dreamvps.txt
1.6 Concatenate multiple compressed filesIt is also possible to concatenate several compressed files into one. You can see how by looking at the examples below.
$ gzip -c dreamvps1.txt > output.txt.gz $ gzip -c dreamvps2.txt >> output.txt.gzThe two commands above will compress ‘dreamvps1.txt’ and ‘dreamvps2.txt’ then will save them in one file called ‘output.txt.gz’. You may view the contents of both files (‘dreamvps1.txt’ and ‘dreamvps2.txt’) without extracting them using any one of the following commands.
$ gunzip -c output.txt.gz $ gunzip -c output.txt $ zcat output.txt.gz $ zcat output.txtThe ‘bzip2’ is quite similar to the gzip program, however, it uses a different compression algorithm called the ‘Burrow-Wheeler block sorting text compression’ algorithm, and Huffman coding. The files compressed using ‘bzip2’ will end with a ‘.bz2’ extension. As we have stated, the usage of ‘bzip2’ is almost the exact same as gzip. Simply replace ‘gzip’ in the example above with ‘bzip2’, ‘gunzip’ with ‘bunzip2’, ‘zcat’ with ‘bzcat’ and so on. To compress a file with ‘bzip2’, replace it with a compressed version, run the below.
$ man gzipIn the case that you do not want to replace the original file, use the ‘–c’ flag and enter the output to a new file.
$ bzip2 dreamvps.txtTo decompress a compressed file, use the below.
$ bzip2 -c dreamvps.txt > output.txt.bz2Or the below.
$ bzip2 -d dreamvps.txt.bz2To view the contents of a compressed file without having to decompresses it, the below.
$ bunzip2 -c dreamvps.txt.bz2Or the below.
$ bzcat dreamvps.txt.bz2For more details, refer man pages.
$ man bzip2
Final Thoughts:In this tutorial, we have taught you about gzip and bzip2 programs and how to use them to compress and decompress files with some examples in GNU/Linux. In the next tutorial, we are going to learn how to archive files and directories in Linux. Cheers!
Updated on 11 Sep 2018
Add a comment