In this tutorial, we touch base on the zip and unzip commands and how they are used in Linux. Zip is a command used for creating an archive file or a zipped file. This allows you to compress your files and create more space for other files on your hard drive or removable drive. Additionally, zipping your files/directories makes them more portable and easier to upload, download or even attach and send them via email.The opposite of zipping is unzipping, and here we use the unzip command to decompress the files and access them individually.

Before start discussing zip and unzip command, let’s see how these commands can be installed from command line,

Install zip & unzip command on Ubuntu / Debian / Linux Mint

Open the terminal and run the following apt command,

$ sudo apt install -y zip unzip
$ sudo apt-get install -y zip unzip

Install zip & unzip command on CentOS / RHEL / Fedora

Open the terminal and execute the beneath command,

$ sudo yum install -y zip unzip
$ sudo dnf install -y zip unzip

Let’s dive in and see how to zip and unzip files and directories in Linux with zip and unzip command with examples.

Zip command in Linux

Zipping a file is as easy as ABC. The syntax is quite straightforward:

$ zip OPTIONS file

A few points to take into consideration before you proceed:

  • You need to have write permissions on the file you are zipping and the directory location before zipping a file.
  • When you unzip or extract a file, the user owns the file/directory.

Example 1) Zipping a single file and multiple files with zip command

Let’s assume you have a text file – reports1.txt – in your current directory and you want to zip it into an archive called

The command for this operation will be:

$ zip reports1.txt


Additionally, you can zip multiple files at a go into an archive as shown:

$ zip file1 file2 file3

Again, let’s assume that we have 3 text files reports1.txt, reports2.txt and reports3.txt. To zip them into the archive, run the command:

$ zip reports1.txt reports2.txt reports3.txt


Example 2) Adding a file to a zip archive (-u)

At times, you may find the need to add a file to a zip archive. To do so, use the -u flag. For example, to add another file reports4.txt, run:

$ zip -u report4.txt


Example 3) View contents of a zipped file

To view contents of a zipped file, use the command as shown:

$ zipinfo


Example 4) Zipping all the files in the current directory (* )

If you have multiple files in your current directory, you can zip all of them at a go using the wildcard symbol as shown in the syntax below:

$ zip *

For example, to compress all files in the home directory to archive, execute the command below. Be sure that you are working in the home directory.

$ zip *


Example 5) Delete a file from an archive (-d)

To remove a file from an archive, invoke the -d flag. For instance, to remove reports4.txt from the zipped file, run:

$ zip -d reports4.txt

Example 6) Delete files after zipping (-m)

As you may have noted, the original files remain even after zipping or archiving them.


If you prefer you get rid of them during archival and conserve space, invoke the -m option during archival as shown:

$ zip -m reports1.txt reports2.txt reports3.txt


Example 7) How to zip a directory (-r)

We have so far seen how to zip files. Often, you will be tasked with zipping directories since they take up more space for the most time.

To zip a folder, use the syntax below. The -r option zipped the folder recursively.

$ zip -r folder

For example, to zip a directory data to an archive, execute:

$ zip -r data


As with files, you can also zip several folders concurrently as shown:

$ zip -r folder1 folder2 folder3


Example 8) Zip a file to a different destination

To zip a file to a different destination other than the current directory simply specify the path to the zipped archive in your syntax as shown:

$ zip /path/to/destination/ file

For example, the file hello.txt is archived to file in the Documents/data/sales path.


Example 9) Zip both files and directories into their own archives

If, for whatever reason, you want to compress files and directories in the current directory into their individual zip archives, use the for loop as shown:

$ for i in *; do zip -r "${i%}.zip" "$i"; done

For example, the example below compresses the file hello.txt and folder sales into their own archives and respectively.


Unzip command in Linux

Let’s now shift gears and focus on unzip command. The command is used to unzip or decompress zipped files and directories. Let’s take a look at a few example usages of the command:

Example 1) How to view the contents of a zipped file (-l)

Before you are unzipping a file or directory, you can view the archive’s contents using the -l option as shown:

$ unzip -l

For example:

$ unzip -l


Example 2) How to view detailed contents of a zipped file (-Z)

To view more detailed information about the file such as file permissions and the total size of the files in the archive, use the -Z option as shown:

$ unzip -Z


Example 3) How to unzip/decompress a zipped file (-d)

In its basic and simplest syntax, unzipping a zipped file takes the syntax below and occurs in the current working directory.

$ unzip

For example:

$ unzip


Example 4) Unzip a file to another directory

To extract or unzip an archive to a different destination, use the -d flag and specify the destination path as shown

$ unzip -d /path/to/destination/folder

For example.

$ unzip -d /home/linuxtechi/Documents


Example 5) Unzip one or more files from an archive

Oftentimes, you will have a compressed file with multiple files. Instead of uncompressing the archive entirely, you may opt to just extract one or two files. To achieve this, specify the file(s) as shown in the  syntax:

$ unzip file1 file2

For example, to extract a file called hello.txt from the archive run

$ unzip hello.txt

Additionally, you can extract the file to a different destination folder instead of the current directory. For example, the command below extracts the hello.txt file to the Documents/data/sales directory.

$ unzip hello.txt -d Documents/data/sales


Example 6) Exclude certain files from being decompressed (- x)

Just as you can extract a specific file(s) from an archive, so can you exclude certain files from being decompressed. This is possible using the ( -x) option in the syntax shown

$ unzip -x file1

For example, the example below excludes files file1.txt & file2.txt from being extracted.

$ unzip -x file1.txt file2.txt


Example 7) How to suppress the output of unzip command (-q)

As you may have noted, details of the unzip operation showing the location of the extraction and files being extracted is printed on the terminal. To suppress this info, use the -q switch as shown:

$ unzip -q

Example 8) How to overwrite existing files (-o)

When you run the unzip command twice in the same directory, you will be prompted whether to replace, ignore the extraction or rename the existing files as shown in the output below.


If you want to overwrite the existing file, without being prompted, use the -o option as shown:

$ unzip -o


Example 9) Unzip multiple files

Finally, to unzip multiple files at a go, use a wildcard in the syntax shown:

$ unzip '*.txt'

Take note of the single quote enclosing the *.txt parameter.


This brings us to the end of this guide; we have showcased the usage of the zip and unzip commands and that various options you can use. For more information about their usage, feel free to visit their man pages. We hope you have a firm grip of the usage of both commands and that you can comfortably zip and unzip your files.

Also Read : How to Create Hard and Soft (symlink) Links on Linux Systems

from Linuxtechi