7z - Man Page
A file archiver with high compression ratio format
Examples (TL;DR)
- [a]dd a file or directory to a new or existing archive:
7z a path/to/archive.7z path/to/file_or_directory
- Encrypt an existing archive (including filenames):
7z a path/to/encrypted.7z -ppassword -mhe=on path/to/archive.7z
- E[x]tract an archive preserving the original directory structure:
7z x path/to/archive.7z
- E[x]tract an archive to a specific directory:
7z x path/to/archive.7z -opath/to/output
- E[x]tract an archive to
stdout
:7z x path/to/archive.7z -so
- [a]rchive using a specific archive type:
7z a -t7z|bzip2|gzip|lzip|tar|zip path/to/archive path/to/file_or_directory
- [l]ist the contents of an archive:
7z l path/to/archive.7z
- Set the level of compression (higher means more compression, but slower):
7z a path/to/archive.7z -mx=0|1|3|5|7|9 path/to/file_or_directory
Synopsis
7z <command> [<switches>... ] <archive_name> [<file_names>... ] [<@listfiles>... ]
Description
7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, RAR (it was removed due a non-free license), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format.
7z uses plugins to handle archives, so it might be slightly slower than 7za(1) but can handle more archive formats.
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 (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm from the p7zip-full package for a list of methods)
- -o{Directory}
Set Output directory
- -p{Password}
Set Password (NOTE: this flag does not work with 7zr)
- -r[-|0]
Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it)
- -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 (e.g. tar cf - directory | 7z a -si directory.tar.7z)
- -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
- -sfx[{name}]
Create SFX archive
- -so
Write data to stdout (e.g. 7z x -so directory.tar.7z | tar xf -)
- -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]
Set working directory. Empty path means a temporary directory
- -x[r[-|0]]]{@listfile|!wildcard}
Exclude filenames
- -y
Assume Yes on all queries
Diagnostics
7-Zip returns the following exit codes:
- 0
Normal (no errors or warnings detected)
- 1
Warning (Non fatal error(s)). For example, some files cannot be read during compressing, so they were not compressed
- 2
Fatal error
- 7
Bad command line parameters
- 8
Not enough memory for operation
- 255
User stopped the process with control-C (or similar)
Backup and limitations
DO NOT USE the 7-zip format for backup purpose on Linux/Unix because :
- 7-zip does not store the owner/group of the file.
On Linux/Unix, in order to backup directories you must use tar :
- to backup a directory : tar cf - directory | 7z a -si directory.tar.7z
- to restore your backup : 7z x -so directory.tar.7z | tar xf -
If you want to send files and directories (not the owner of file) to others Unix/MacOS/Windows users, you can use the 7-zip format.
example : 7z a directory.7z directory
Do not use "-r" because this flag does not do what you think.
Do not use directory/* because of ".*" files (example : "directory/*" does not match "directory/.profile")
Example 1
- 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
adds all files from directory "dir1" to archive archive.7z using "ultra settings"
- -t7z
7z archive
- -m0=lzma
lzma method
- -mx=9
level of compression = 9 (Ultra)
- -mfb=64
number of fast bytes for LZMA = 64
- -md=32m
dictionary size = 32 megabytes
- -ms=on
solid archive = on
Example 2
- 7z a -sfx archive.exe dir1
add all files from directory "dir1" to SFX archive archive.exe (Remark : SFX archive MUST end with ".exe")
Example 3
- 7z a -mhe=on -pmy_password archive.7z a_directory
add all files from directory "a_directory" to the archive "archive.7z" (with data and header archive encryption on)
See Also
HTML Documentation
/usr/share/doc/p7zip-full/DOC/MANUAL/start.htm
Author
Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda.