How can I uncompress a *.7z file in Ubuntu and keep the directory structure?
9 Answers
First install the p7zip-full
package:
sudo apt-get install p7zip-full
With this, Nautilus should have an option to uncompress 7-Zip Files.
I also recommend p7zip-rar
so it also includes support for RAR files.
This is assuming you want to do it via GUI with Nautilus. If not, after downloading the packages above do the following:
7z x PACKAGE.7z
that should eXtract the packages with full path.

- 4,298

- 211,503
There is also dtrx
- which is immensely useful for un-archiving anything.
it stands for "Do The Right eXtraction" - and will uncompress anything without any fuss.
simply:
sudo apt-get install dtrx
dtrx archive.tar.XX
Manpage: http://manpages.ubuntu.com/manpages/trusty/en/man1/dtrx.1.html
UPDATE for Ubuntu 20.04 :
According to their pypi page, dtrx is not currently available in the official repos. Thus, if you cannot install this via apt
, then you can still use pip3
:
pip3 install dtrx
If you don't already have pip3 installed, you can install it with
sudo apt install python3-pip

- 3,176
-
8
-
2You saved me, for some reason p7zip couldn't handle my files but dtrx worked like a charm. – adamconkey Jul 01 '15 at 00:00
-
18
-
Seems perpect (!), but on Ubuntu 20.04.1 LTS the result of
sudo apt install dtrx
is an ERROR, "E: Unable to locate package dtrx". – Peter Krauss Aug 03 '20 at 21:55 -
1
For ubuntu 17.04, no need for the full package, p7zip
is enough:
sudo apt install p7zip
Then, uncompress using the -d
command:
p7zip -d something.7z

- 293
-
8p7zip -d --keep something.7z or it will destroy your input file !!!! – Dave Kimble Aug 04 '18 at 07:16
-
1This does not extract all files, due to features missing. in my case password protection. Thus this might be misleading. – scones Sep 25 '18 at 10:53
-
Ah, so the default behavior is to delete the input. That is indeed very useful and polite. I wish all programs did this. – Przemek D Apr 28 '20 at 13:04
First install the according package
sudo apt install p7zip-full
- use
x
flag to extract files with full path - use
-o
flag to set output directory
7z x <archive_name> -o{Directory}
for example
7z x file.7z -o/home/michael/Documents/NewFolder
Notice that there is no space between -o
and the output directory. If the file was encrypted, it will automatically ask for the password.

- 526
The other answers did not work for me.
But this command worked fine:
7z e file.7z
-
2You are right but, you need to use "x" to keep directory structures! Note that if you use the tag "e" f.eg 7z e Myfile.7z it will pull everything into your current working directory and overwritten of the existing files can be a permanent loss. – MathArt Nov 26 '20 at 08:36
here is unarchiver https://theunarchiver.com/command-line
sudo apt install unar
then
unar xxx.7z
that's it.

- 229
To extract all 7z archives into their own folder, using the archive name as the folder name:
7z x "*.7z" -o*
E.g., if one has the two files a.7z
and b.7z
, then folders a
and b
will be created and they'll contain the content of a.7z
and b.7z
(keeping the directory structure), respectively.

- 3,460
In 2024 I think the easiest option is to use the Linux version of 7-zip.
This provides an official tool which does not require any installation. The executable 7zzs
can be used out of the box and is portable. It also seems to have the same syntax as p7zip (at least for simple stuff). E.g. 7zzs x archive.7z
to extract. (Add it to your $PATH in order for 7zzs to work or use the full path e.g. /directory/containing/the/executable/7zzs
)
Also possibly of interest: Difference between several command-line tools provided for 7-Zip compression (like `7z`, `7zz`...)

- 635
7z x my-archive.7z
all files will be extracted to your home! I had a huge archive now it will be a pain in the axe finding all files and moving them in the right place! – Sampgun Aug 11 '20 at 13:27x
option and the tree was respected, but the zip contained lots of files in its root. I did add the folder, in fact this was the command7z x /var/www/html/archive.7z
. Thehtml
folder was empty, but still it extracted everything to the root, so...bummers! I think there sould be some option as-d
exists forunzip
– Sampgun Aug 14 '20 at 16:12sudo apt-get update
before installing. – dim_voly Aug 27 '23 at 08:48