7Zip for Linux – Command Examples

7-Zip is fully featured cross cross platform file archiver software. While windows is having nice and elegant UI, Linux/POSIX systems have fully features command line tool 7z

7z supports many compression algorithms and formats such as GZIP, TAR, ZIP, XZ, BZIP2, WIM and 7z. 7Zip is also capable of extracting other formats such as EXE, AR, RAR

Install 7Zip on Linux

7Zip is ported on to Linux systems and it is called as p7zip. If p7zip is installed, you will get 7z, 7za and 7zr command line utilities

# sudo apt install pzip-full

On REHL or Fedora based distribution, it can be installed using

$ sudo yum install p7ip  p7zip-plugins

Install 7Zip on Mac

Command line application p7zip can be install on Mac using Homebrew as follows

$brew update

Install the command line application p7zip

$ brew install p7zip

Usage of 7z command

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

Create Archive

Use the command “a” to add files to archive. If archive if file name given does not exist new archive will be created otherwise files will be added to existing archive

$ 7z  a  archive.7z file_to_compress

Create Archive with Password

To create an archive with password, use the switch -p along with command ‘a’ .

$ 7z a -pPASSWD archive.7z folder

Create archive with sub directories

$ 7z a -r archive.7z.  folder

.

Extracting from Archive using 7z

Extract files from archive with full path

$ 7z x archive.7z 

Specify the location to extract

$ 7z x -opath/to/extract  archive.7z 

.

Default image
neotam
Naveen T aka neotam. Programming language agnostic, Software architect, Python expert, Networking & DevOps engineer & consultant with 7+ years of experience in creating serious web applications, real time event-driven non blocking applications and database driven applications ranging from small scale to enterprise grade. website
Leave a Reply