7z (中文)是优秀开源的压缩解压缩软件(wiki: en 中文),有windows版本与linux版本,最新的9.32版本支持的格式包括:
压缩与解压缩均支持:7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM
只支持解压缩:ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR, Z
在windows上,7z提供了GUI窗口程序和命令行工具(内含命令行说明文档),下面简单地介绍一下命令行的用法:
追加文件到压缩包(add)
7z a files.7z *.txt // 将当前目录下(不含子目录)的所有txt文件添加到files.7z压缩包中
7z a -t7z files.7z *.txt -p123456 // 将当前目录下(不含子目录)的所有txt文件添加到files.7z压缩包,并将压缩包的密码设置为123456
7z a -t7z files.7z *.txt -mx0 // 将当前目录下(不含子目录)的所有txt文件以不压缩方式添加到files.7z压缩包中
7z a -t7z files.7z *.txt -mx1 // 将当前目录下(不含子目录)的所有txt文件以低压缩方式添加到files.7z压缩包中
7z a -t7z files.7z *.txt -mx3 // 将当前目录下(不含子目录)的所有txt文件以快速压缩方式添加到files.7z压缩包中
7z a -t7z files.7z *.txt -mx5 // 将当前目录下(不含子目录)的所有txt文件以正常压缩方式添加到files.7z压缩包中
7z a -t7z files.7z *.txt -mx7 // 将当前目录下(不含子目录)的所有txt文件以最大压缩方式添加到files.7z压缩包中
7z a -t7z files.7z *.txt -mx9 // 将当前目录下(不含子目录)的所有txt文件以超大压缩方式添加到files.7z压缩包中
7z a -t7z files.7z "d:\test" -m0:LZMA // 将d盘test目录所有内容用LZMA压缩算法添加到files.7z压缩包中(压缩包第一层为test,保持原有目录结构)
// 压缩算法包括:LZMA, LZMA2, PPMd, BZip2, Deflate, Delta, BCJ, BCJ2, Copy
7z a -t7z files.7z "d:\test" // 将d盘test目录中所有内容添加到files.7z压缩包中(压缩包第一层为test,保持原有目录结构)
7z a -t7z files.7z "test" // 将当前目录的test目录中所有内容添加到files.7z压缩包中(压缩包第一层为test,保持原有目录结构)
7z a -t7z files.7z "test\*" // 将当前目录的test目录中所有内容添加到files.7z压缩包中(压缩包第一层直接为test中的内容,保持原有目录结构)
7z a -t7z files.7z "test\abc" // 将当前目录的test目录下的abc文件夹中所有内容添加到files.7z压缩包中(压缩包第一层为test,第二层为abc,保持原有目录结构)
7z a -t7z files.7z "d:\test" // 将d盘test目录中所有内容添加到files.7z压缩包中(压缩包第一层为test,保持原有目录结构)
7z a -t7z files.7z "d:\test\*" // 将d盘test目录中所有内容添加到files.7z压缩包中(压缩包第一层直接为test中的内容,保持原有目录结构)
7z a -t7z files.7z "d:\test\*.txt" // 将d盘test目录中txt文件(不含子目录)添加到files.7z压缩包中(压缩包第一层直接为test中的内容)
7z a -t7z files.7z "d:\test\*.txt" -r // 将d盘test目录中txt文件(递归子目录)添加到files.7z压缩包中(压缩包第一层直接为test中的内容,保持原有目录结构)
不指定-t时,压缩格式为7z。-t 可指定如下压缩格式:zip、7z、gzip、bzip2、tar等
删除压缩包中文件(delete)
7z d files.zip *.bak -r // 递归子目录删除files.zip压缩包中的所有bak文件
解压压缩包(extract)
7z e files.zip // 去除目录结构解压files.zip到当前目录
7z x files.zip // 保持目录结构解压files.zip到当前目录
7z x files.zip -o"c:\doc" // 保持目录结构解压files.zip到c盘doc目录中
7z x files.zip -p123456 // 保持目录结构解压密码为123456的files.zip当前目录
7z x files.zip -aoa // 保持目录结构解压files.zip到当前目录;若有文件冲突,使用压缩包中文件替换掉原来当前目录中的文件
7z x files.zip -aos // 保持目录结构解压files.zip到当前目录;若有文件冲突,使用原来当前目录中的文件
7z x files.zip -aou // 保持目录结构解压files.zip到当前目录;若有文件冲突,加上编号对压缩包中文件进行重命名,原来当前目录中的文件不动
7z x files.zip -aot // 保持目录结构解压files.zip到当前目录;若有文件冲突,加上编号对原来当前目录中的文件进行重命名,压缩包中文件不动
列出压缩包中内容(list)
7z l files.zip // 保持目录结构列出files.zip压缩包中的所有文件(递归子目录)
测试压缩包完整性(test)
7z t files.zip *.doc -r // 递归子目录测试files.zip压缩包中所有doc文件的完整性
更新压缩包(update)
7z u files.zip *.doc // 用当前目录下(不含子目录)doc文件更新压缩包中的doc文件(若doc文件存在压缩包中则更新,不存在则添加)
7z u files.zip *.doc -r // 用当前目录下(递归子目录)doc文件更新压缩包中的doc文件(若doc文件存在压缩包中则更新,不存在则添加)
递归子目录选项说明:
-r 开启递归子目录。对于 e (释放)、l (列表)、t (测试)、x (完整路径释放) 这些在压缩档案中操作的命令, 会默认使用此选项。
-r- 关闭递归子目录。对于 a (添加)、d (删除)、u (更新) 等所有需扫描磁盘文件的命令,会默认使用此选项。
-r0 开启递归子目录。但只应用于通配符。
使用sfx文件将7zip制作成安装包
copy /b 7zsd.sfx+config.txt+Tools.7z ToolsSetup.exe // config.txt中定义安装过程中一些提示语以及缺省配置
说明:
SFX : Description
7zSD.sfx : Windows version for installers (uses MSVCRT.dll). 更多下载
Source: http://sevenzip.sourceforge.jp/chm/cmdline/switches/sfx.htm
Config.txt : Description
;!@Install@!UTF-8!
BeginPrompt="Install Tools in subfolder [Tools]"
InstallPath="."
RunProgram="Tools\game.exe"
;!@InstallEnd@!
gui工具:7zip sfx maker