LinuxCommandLibrary

7zr

A file archiver with highest compression ratio

TLDR

[a]rchive a file or directory

$ 7zr a [path/to/archive.7z] [path/to/file_or_directory]
copy


Encrypt an existing archive (including file names)
$ 7zr a [path/to/encrypted.7z] -p[password] -mhe=[on] [path/to/archive.7z]
copy


E[x]tract an archive preserving the original directory structure
$ 7zr x [path/to/archive.7z]
copy


E[x]tract an archive to a specific directory
$ 7zr x [path/to/archive.7z] -o[path/to/output]
copy


E[x]tract an archive to stdout
$ 7zr x [path/to/archive.7z] -so
copy


[l]ist the contents of an archive
$ 7zr l [path/to/archive.7z]
copy


Set the level of compression (higher means more compression, but slower)
$ 7zr a [path/to/archive.7z] -mx=[0|1|3|5|7|9] [path/to/file_or_directory]
copy

SYNOPSIS

7zr [adeltux] [-] [SWITCH] <ARCHIVE_NAME> <ARGUMENTS>...

DESCRIPTION

7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format.

7zr is a stand-alone executable. 7zr handles less archive formats than 7z, but does not need any others. 7zr is a "light-version" of 7za that only handles 7z archives.

FUNCTION LETTERS

a

Add

d

Delete

e

Extract

l

List

t

Test

u

Update

x

eXtract with full paths

SWITCHES

-ai[r[-|0]]{@listfile|!wildcard}

Include archives

-ax[r[-|0]]{@listfile|!wildcard}

eXclude archives

-bd

Disable percentage indicator

-i[r[-|0]]{@listfile|!wildcard}

Include filenames

-l

don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln -s .. ldir')

-m{Parameters}

Set Compression Method (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm for a list of methods)

-mhe=on|off

7z format only : enables or disables archive header encryption (Default : off)

-o{Directory}

Set Output directory

-p{Password}

Set Password

-r[-|0]

Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it)

-sfx[{name}]

Create SFX archive

-si

Read data from StdIn (eg: tar cf - directory | 7zr a -si directory.tar.7z)

-so

Write data to StdOut (eg: 7zr x -so directory.tar.7z | tar xf -)

-slt

Sets technical mode for l (list) command

-v{Size}[b|k|m|g]

Create volumes

-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]

Update options

-w[path]

Set Working directory

-x[r[-|0]]]{@listfile|!wildcard}

Exclude filenames

-y

Assume Yes on all queries

DIAGNOSTICS

7-Zip returns the following exit codes:

  1. Normal (no errors or warnings detected)

  2. Warning (Non fatal error(s)). For example, some files cannot be read during compressing. So they were not compressed

  3. Fatal error

  4. Bad command line parameters

  5. Not enough memory for operation

  6. 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 | 7zr a -si directory.tar.7z - to restore your backup : 7zr 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 : 7zr 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

7zr 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

7zr 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

7zr 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)

HTML Documentation

/usr/share/doc/p7zip/DOC/MANUAL/index.htm

SEE ALSO

7z(1), 7za(1), bzip2(1), gzip(1), zip(1)

AUTHOR

Written for Debian by Mohammed Adnene Trojette.

Copied to clipboard