zip command is used to compress files for ease and portability, on Linux/Unix operating systems. There are various other ways to compress your files, but the
zip command is among the most popular.
In this tutorial we’ll explore the various ways you can zip files by using the
zip command, and the
unzip command to extract your compressed files. We’ll also see how to unzip archives zipped through different methods
.xz , and
How to Zip Files in Linux
The following are examples of typical uses of the
If you’re on a fresh install of your operating system, if you don’t have it installed, you can install both the
unzip tools by running:
$ sudo apt install zip unzip
$ sudo yup install zip unzip
1 – Zip Files in Directory
This command creates a
.zip archive of all the files in a directory. It does not create an archive recursively, however.
$ zip some_folder.zip some_folder/*
adding: some_folder/a_file.conf (stored 0%) adding: some_folder/Anaconda3-2018.12-Linux-x86_64.sh (deflated 0%) adding: some_folder/GettyImages-845976972-5b1977813de42300372a76c8.jpg (deflated 6%) adding: some_folder/google-chrome-stable_current_amd64.deb (deflated 0%) adding: some_folder/mr_file (deflated 0%) adding: some_folder/some_script.py (deflated 0%) adding: some_folder/this_is_a_file.txt (deflated 0%) adding: some_folder/this_is_another_file.txt (deflated 0%)
2 – Zip Files by Extension using Wildcard
Using wildcards, we can zip files that files that have a specific extension. We’ll archive only our
$ zip some_folder_txt.zip some_folder_txt/*.txt
adding: some_folder/this_is_a_file.txt (deflated 0%) adding: some_folder/this_is_another_file.txt (stored 0%)
3 – Zip Files Recursively
zip command with the
-r flag, we can create an archive recursively, thereby compressing subdirectories as well.
$ zip -r some_folder.zip some_folder
4 – Password Protect Zip Files
If you need to protect your archives, you can password protect them using the
$ zip -P some_folder.zip some_folder/*
5 – Adjust Zip Compression Levels
zip command allows you to adjust the compression level from 0 to 9.
-6 is the default compression level
-0 is the lowest compression level
-9 is the highest compression level
$ zip -9 some_folder.zip some_folder/* $ zip -0 some_folder.zip some_folder/*
How to Unzip Files in Linux
1 – List Contents of a Zip File
We can use the
-l flag to list the contents of a zip file, without extracting it.
unzip -l some_folder.zip
Length Date Time Name --------- ---------- ----- ---- 0 2019-01-15 14:00 some_folder/a_file.conf 112311072 2019-01-15 14:05 some_folder/Anaconda3-2018.12-Linux-x86_64.sh 4588 2018-06-07 13:29 some_folder/GettyImages-845976972-5b1977813de42300372a76c8.jpg 56611204 2018-12-11 20:39 some_folder/google-chrome-stable_current_amd64.deb 20971520 2019-01-15 14:00 some_folder/mr_file 5242880 2019-01-15 14:01 some_folder/some_script.py 10485760 2019-01-15 14:01 some_folder/this_is_a_file.txt --------- ------- 205627024 7 files
2 – Extract a Zip File
To unzip a
.zip archive, we can simply use the
$ unzip some_folder.zip
3 – Test the Integrity of a Zip File
You may want to make sure your archive isn’t corrupted. For this, we can use the
-t flag with the
This option extracts each specified file in memory and compares the CRC (cyclic redundancy check, an enhanced checksum) of the expanded file with the original’s stored CRC value.
$ unzip -t some_folder.zip
Archive: some_folder.zip testing: some_folder/a_file.conf OK testing: some_folder/Anaconda3-2018.12-Linux-x86_64.sh OK testing: some_folder/GettyImages-845976972-5b1977813de42300372a76c8.jpg OK testing: some_folder/google-chrome-stable_current_amd64.deb OK testing: some_folder/mr_file OK testing: some_folder/some_script.py OK testing: some_folder/this_is_a_file.txt OK No errors detected in compressed data of some_folder.zip.
Extract Different Compression Formats
There are different compression methods and you’ll very often encounter different formats. You can use the following methods to extract the various formats.
How to Extract .gz File
.gz files are archives compressed using the Gzip utility. It’s generally considered better than Zip, especially when having to compress a huge number of file. To extract a
.gz archive use the
$ gunzip some_folder.gz
How to Extract .tar File
.tar is referred to as the tarball but it’s name is actually derived from (t)ape (ar)chive. This is another popular compression method. To extract a
.tar archive, use the following command:
$ tar -xvf some_folder.tar
How to Extract .tar.gz File
.tar.gz is a format combining TAR and GZIP, thus providing more compression. You can extract it using the following command, using the
$ tar -xzf some_folder.tar.gz
How to Extract .tar.xz File
tar.xz format does not offer archiving capabilities. It only preserves the original data into one file. To extract
.tar.gz we use the
$ tar -xJf some_folder.tar.xz
How to Extract tar.bz2 File
tar.bz2 is a combination of the TAR and bzip2 formats. To extract it, we use the
$ tar -xjf some_folder.tar.bz2
How to Extract .7z File
7z represents the
7zip format. It’s typically not used on Linux, and to use it you’ll have to install 7-zip File Archive on your machine. With it installed, to extract a 7z archive, run the following command:
$ 7z x some_folder.7z
How to Extract .rar File
.rar files are one of the most popular archive formats for Windows, created using WinRAR. It’s not very often used on Linux, however if you need to extract it, you can use the unrar utility or 7-zip File Archiver, both of which you’ll have to install on your OS.
.rar archives on Linux, use the following comman
$ unrar x some_folder.rar
$ 7z x some_folder.rar
Well done. You’ve learned how to create ZIP archives through various methods, and to extract different archive formats. If you’ve found any issues with this tutorial, then please feel free to leave a comment or contact us, and we’ll get back to you as soon as possible.