A 7-Zip file with the extension .7z is a compressed file format that can be extracted using p7zip tool in Linux. p7zip is available for most Linux systems and can easily be installed at the terminal. Once installed, 7-Zip files can then be extracted from the terminal or supporting GUI-based file explorer applications such as Nautilus for GNOME or Dolphin for KDE.

Steps to extract 7-Zip file in Linux:

  1. Launch terminal application.
  2. Install p7zip (optional, if not already installed).
    $ 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:
    Suggested packages:
    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 folder where you want to extract the file onto (optional).
    $ mkdir target_directory
  4. Go to the target directory where you want to extract the file onto (optional).
    $ cd target_directory
  5. Extract using 7z command.
    ~/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>...]
      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
      -- : 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. View decompressed 7-zip archive.
    ~/target_directory$ ls -R archive/
    subfolder-00  subfolder-01
    filename-01  filename-02
    filename-01  filename-02
  7. Right click the file on Nautilus or Dolphin to extract the file from the GUI.
Share this guide!
Discuss the article:

Comment anonymously. Login not required.