A .7z file is a compressed archive format used to reduce file size and consolidate multiple files. To unzip .7z files in Linux, you need to install the p7zip utility, which supports the 7-Zip format. This tool is available for most Linux distributions, including Ubuntu, Red Hat, and CentOS.

Once installed, p7zip can be used either from the command line or a graphical interface such as GNOME Files or KDE Dolphin. It allows you to extract .7z files with simple commands or by right-clicking in a file manager. Both methods provide reliable ways to handle compressed archives on Linux systems.

Extracting .7z files on Linux is straightforward once the necessary packages are installed. The terminal offers advanced extraction options for users who prefer detailed control. Meanwhile, file managers offer a quick, graphical approach for everyday tasks. Whichever method you choose, working with .7z files is an easy process on Linux.

Steps to unzip 7z files in Linux:

  1. Open the terminal application.
  2. Install the p7zip utility using the package manager for your distribution.
    $ sudo apt update && sudo apt install --assume-yes p7zip-full # Ubuntu and Debian
    [sudo] password for user:
    ##### snipped
    The following additional packages will be installed:
      p7zip
    Suggested packages:
      p7zip-rar
    The following NEW packages will be installed:
      p7zip p7zip-full
    0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,546 kB of archives.
    After this operation, 5,908 kB of additional disk space will be used.
    ##### snipped
    $ sudo yum install --assumeyes epel-release && sudo yum install --assumeyes p7zip # CentOS and Red Hat
  3. Create a folder where you want to extract the contents of the 7z file (optional).
    $ mkdir target_directory
  4. Navigate to the target directory where you want to extract the 7z file (optional).
    $ cd target_directory
  5. Use the 7z command to extract the compressed archive.
    ~/target_directory$ 7z x ~/archive.7z
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz (906ED),ASM,AES-NI)
    
    Scanning the drive for archives:
    1 file, 189 bytes (1 KiB)
    
    Extracting archive: /home/user/archive.7z
    --
    Path = /home/user/archive.7z
    Type = 7z
    Physical Size = 189
    Headers Size = 189
    Solid = -
    Blocks = 0
    
    Everything is Ok
    
    Folders: 3
    Files: 4
    Size:       0
    Compressed: 189

    Common options for 7z command:

    $ 7z --help
    
    7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
    p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz (906ED),ASM,AES-NI)
    
    Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...]
           [<@listfiles...>]
    
    <Commands>
      a : Add files to archive
      b : Benchmark
      d : Delete files from archive
      e : Extract files from archive (without using directory names)
      h : Calculate hash values for files
      i : Show information about supported formats
      l : List contents of archive
      rn : Rename files in archive
      t : Test integrity of archive
      u : Update files to archive
      x : eXtract files with full paths
    
    <Switches>
      -- : Stop switches parsing
      -ai[r[-|0]]{@listfile|!wildcard} : Include archives
      -ax[r[-|0]]{@listfile|!wildcard} : eXclude archives
      -ao{a|s|t|u} : set Overwrite mode
      -an : disable archive_name field
      -bb[0-3] : set output log level
      -bd : disable progress indicator
      -bs{o|e|p}{0|1|2} : set output stream for output/error/progress line
      -bt : show execution time statistics
      -i[r[-|0]]{@listfile|!wildcard} : Include filenames
      -m{Parameters} : set compression Method
        -mmt[N] : set number of CPU threads
      -o{Directory} : set Output directory
      -p{Password} : set Password
      -r[-|0] : Recurse subdirectories
      -sa{a|e|s} : set Archive name mode
      -scc{UTF-8|WIN|DOS} : set charset for for console input/output
      -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}} : set charset for list files
      -scrc[CRC32|CRC64|SHA1|SHA256|*] : set hash function for x, e, h commands
      -sdel : delete files after compression
      -seml[.] : send archive by email
      -sfx[{name}] : Create SFX archive
      -si[{name}] : read data from stdin
      -slp : set Large Pages mode
      -slt : show technical information for l (List) command
      -snh : store hard links as links
      -snl : store symbolic links as links
      -sni : store NT security information
      -sns[-] : store NTFS alternate streams
      -so : write data to stdout
      -spd : disable wildcard matching for file names
      -spe : eliminate duplication of root folder for extract command
      -spf : use fully qualified file paths
      -ssc[-] : set sensitive case mode
      -ssw : compress shared files
      -stl : set archive timestamp from the most recently modified file
      -stm{HexMask} : set CPU thread affinity mask (hexadecimal number)
      -stx{Type} : exclude archive type
      -t{Type} : Set type of archive
      -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
      -v{Size}[b|k|m|g] : Create volumes
      -w[{path}] : assign Work directory. Empty path means a temporary directory
      -x[r[-|0]]{@listfile|!wildcard} : eXclude filenames
      -y : assume Yes on all queries
  6. Access the contents of the decompressed 7-zip archive.
    ~/target_directory$ ls -R archive/
    archive/:
    subfolder-00  subfolder-01
    
    archive/subfolder-00:
    filename-01  filename-02
    
    archive/subfolder-01:
    filename-01  filename-02
  7. Right-click the 7z file in Files or Dolphin and choose the extract option from the context menu to use the graphical user interface (GUI) for extraction.
Discuss the article:

Comment anonymously. Login not required.