7-Zip是一款非常优秀的GNU/GPL压缩软件,其普通压缩率已经超过了WinRar的压缩比率。其实他还有一个可以在命令行下使用的程序7za.

我做过了一个测试,用Gzip.exe和7za.exe分别压缩一个64M的文件,Gzip压缩后是15M,而7Za压缩后是12M。。相差3M之多。

7za使用也非常简单,自带了很多参数。假设我们有一个数据库的备份文件叫2.bak,我现在想用7za压缩他并创建一个2.7z的文件那么可以这样写

7za a -t7z  2.7z  -mx=9 -ms=200m -mf  2.bak

7Za也支持分卷压缩,我们想生成的每卷文件体积不能超过7M,那这么写就可以了

7za a -t7z 2.7z  -mx=9 -ms=200m -mf  -v7M 2.bak

*************************************附7Za参数手册**************************

NAME

7-Zip - A file archiver with highest compression ratio

SYNOPSIS

7za [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.

7za is a stand-alone executable. 7za handles less archive formats than 7z, but does not need any others.

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/DOCS/MANUAL/switches/method.htm for a list of methods)
-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
-so
Write data to StdOut (eg: % echo foo | 7z a dummy -tgzip -si -so > /dev/null)
-t{Type}
Type of archive
-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

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

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