A zip file can be unzipped using the unzip command from the terminal.
If the unzip
command isn’t already installed on your system, then run:
sudo apt-get install unzip
After installing the unzip utility, if you want to extract to a particular destination folder, you can use:
unzip file.zip -d destination_folder
If the source and destination directories are the same, you can simply do:
unzip file.zip
How to unzip a zip file from the Terminal?
You can simply use unzip
.
Install it:
apt-get install unzip
And use it:
cd /path/to/file
unzip file.zip
If the source and destination directories are the same, you can simply do:
unzip filename.zip
Answer #3:
A more useful tool is 7z
, which zips and unzips a range of compression formats, notably lzma
, usually the protocol offering the highest compression rates.
This command installs 7z
:
sudo apt-get install p7zip-full
This command lists the contents of the zip:
7z l zipfile.zip
This command extracts the contents of the zip:
7z x zipfile.zip
Answer #4:
You can use:
unzip file.zip -d somedir
to extract to yourpath/somedir
If you want to extract to an absolute path, use
sudo unzip file.zip -d /somedir
Answer #5:
Using scripting tools: Perl and Python
Many answers here mention tools that require installation, but nobody has mentioned that two of Ubuntu’s scripting languages, Perl and Python, already come with all the necessary modules that allow you to unzip a zip archive, which means you don’t need to install anything else. Just use either of the two scripts presented below to do the job. They’re fairly short and can even be condensed to a one-liner command if we wanted to.
Python
#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
pzf = PyZipFile(zip_file)
pzf.extractall()
Usage:
./pyunzip.py master.zip
or
python3 pyunzip.py master.zip
Perl
#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
my $archive = Archive::Extract->new( archive => $filepath );
$archive->extract;
}
Usage:
./perlunzip master.zip
or
perl perlunzip.pl master.zip
Answer #6:
I prefer bsdtar
to unzip
/zip
. For extracting, they are pretty similar:
bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five
However for zipping, bsdtar
wins. Say you have this input:
/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt
and want this in the zip file:
alfa/four.txt
bravo/four.txt
This is easy with bsdtar
:
bsdtar -a -c -f four.zip -C /one/two/three alfa bravo
zip does not have the -d
option like unzip, so you have no way to achieve the above unless you cd
first.
How to unzip a zip file from the Terminal?
Follow the following steps:
Install unzip
So First of all we need to install unzip on our system if it’s not installed. unzip command is used to extract files from a ZIP archive.
Run the following command to install unzip
sudo apt-get install unzip
unzip
Syntax
$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile
Now Follow the steps below:
UnZip File
OPTION 1 – If the Zip File is in the same directory/folder in which your terminal is and we want to extract it in the present working directory.
Use the following command to achieve the above described scenario
sudo unzip zip_file_name.zip
if the zip file is protected with some password, then use the following command :
sudo ubzip -P zip_file_name.zip
Please make sure you use -P (capital P) not -p because the are different options.
OPTION 2 – If the zip file is not present in the same directory and we want to extract/unzip the file in different directory.
Use the following command to achieve the above described scenario
sudo unzip path/filename.zip -d another_path_or_same_path
if we does not use option -d the file will be extracted to present working directory.
And if the zip file is password protected we can also use -P
.
use tar Command in Linux / Unix
tar
is an acronym for Tape Archive. tar command is used to Manipulates archives in Linux/Unix. System administrators uses tar command frequently to rip a bunch of files or directories into highly compressed archive which are called tarball
or tar
, bzip
and gzip
in Linux/Unix system.
tar Syntax
tar [OPTION...] [FILE]...
Or
tar required Flags
tar {-r|-t|-c|-x|-u}
tar optional Flags
tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]
Examples
Create tar Archive File by Compressing an Directory or a Single File
The terminal command below will create a .tar
file called sample_dir.tar
with a directory /home/codebind/sample_dir
or sample_dir
in present working directory.
ripon@ripon:~$ tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar
Here’s what those flags (-cvf) actually mean
-c, --create
– create a new archive
-x, --extract, --get
– extract files from an archive
-f, --file ARCHIVE
– use archive file or device ARCHIVE
Create tar.gz
or tgz
Archive File by Compressing an Directory or a Single File
The terminal command below will create a .tar.gz
file called sample_dir.tar.gz
with a directory /home/codebind/sample_dir
or sample_dir
in present working directory.
Notice that we have added extra flag -z to the command.Here’s what the flag -z actually mean
-z, --gzip, --gunzip --ungzip
– Compress the archive with gzip
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz
The command bellow will create a .tgz file. One this to notice is tar.gz and tgz both are similar.
ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz
Compressing Multiple Directories or Files at Once
Let’s say, For example we want to compress the sample_dir
directory, the java_test
directory, and the abc.py
file to a tar file called sample_dir.tar.gz
.
Run the following command to achieve the goal above.
ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
java_test/
java_test/HelloCV.java
abc.py
ripon@ripon:~$ ls
sample_dir java_test abc.py sample_dir.tar.gz
Create .bzip2
Archive File by Compressing an Directory or a Single File
ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
Notice that we have added extra flag -f
to the command.Here’s what the flag -f
actually mean
-f, --file ARCHIVE
– use archive file or device ARCHIVE
Extract .tar
Archive File using terminal
We can extract or untar the compressed file using the tar command. The command below will extract the contents of sample_dir.tar
to the present directory.
ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
The following command will extract or untar files in specified Directory i.e. /home/codebind/dir_name
in this case.
ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$
we have added extra flag -C
to the command.Here’s what the flag -C
actually mean
-C, --directory DIR
– change to directory DIR
Hope you learned something from this post.
Follow Programming Articles for more!