7z - 一个高压缩率的压缩程序

7z(1)                                          通用命令手册                                          7z(1)

名称
       7z - 一个高压缩率的压缩程序

语法
       7z <指令> [<选项>... ] <存档名> [<将要被压缩的文件>... ] [<@列表文件>... ]

描述
       7-Zip是支持7z的压缩程序(它实现了LZMA压缩算法,具有很好的压缩率和压缩速度),
       LZMA2,XZ,ZIP,Zip64,CAB,RAR(如果安装了非免费的p7zip-rar软件包),
       ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,大多数文件系统映像和DEB格式。 
       新的7z格式的压缩比为比ZIP格式的压缩比高30-50%。

       7z使用插件来处理存档,因此它可能比7za(1)慢一些,但可以处理更多存档格式。

指令
       a      将文件添加到存档中

       b      基准测试

       d      从存档中删除文件

       e      解压存档

       h      计算文件的哈希值

       i      显示有关支持的格式的信息

       l      列出存档中的文件

       rn     重命名存档中的文件

       t      测试存档的完整性

       u      更新存档中的文件

       x      在当前目录创建一个于存档同名的目录并将全部内容解压到该目录内

选项
       --     忽略后面的选项

       -ai[r[-|0]]{@listfile|!wildcard}
              将其他存档包含进来

       -ax[r[-|0]]{@listfile|!wildcard}
              排除其它存档

       -ao{a|s|t|u}
              设置覆盖模式.
              -aoa
                     覆盖所有现有文件而无提示。
              -aos
                     不提取已经存在的文件
              -aot
                     若存在同名文件则自动重命名提取出来的文件
              -aou
                     若存在同名文件则自动重命名之前存在的文件

       -an    禁用 archive_name 字段

       -bb[0-3]
              设置输出日志的等级

       -bd    禁用进度条

       -bs{o|e|p}{0|1|2}
              为 output/error/progress 设置输出流
              (详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/bs.htm)。

       -bt    显示执行时间

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

       -m{Parameters}
              设置压缩方法 
              (详情见/usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm)

       -o{Directory}
              设置输出目录

       -p{Password}
              设置密码(注意:此标志不适用于7zr)

       -r[-|0]
              递归子目录(注意:此标志不会执行您认为的操作,请避免使用它)

       -sa{a|e|s}
              设置存档名称模式

       -scc{UTF-8|WIN|DOS}
              为控制台输入/输出设置字符集

       -scs{UTF-8|UTF-16LE|UTF-16BE|WIN|DOS|{id}}
              设置列表文件的字符集

       -scrc[CRC32|CRC64|SHA1|SHA256|*]
              为 x,e,h 指令设置哈希函数

       -sdel  压缩后删除文件

       -seml[.]
              通过电子邮件发送存档

       -sfx[{name}]
              创建自解压包

       -si[{name}]
              从 stdin 读取数据
              (例如 tar cf - directory | 7z a -si directory.tar.7z)

       -slp   设置大页面模式

       -slt   显示l(List)命令的技术信息

       -snh   将硬链接存储为链接

       -snl   将符号链接存储为链接

       -sni   存储 NT 安全信息

       -sns[-]
              存储 NTFS 备用流

       -sfx[{name}]
              创建自解压包

       -so    将数据写入标准输出
       (例如 7z x -so directory.tar.7z | tar xf -)

       -spd   禁用文件名的通配符匹配

       -spe   消除使用提取命令时的根文件夹的重复

       -spf   同时存储存档内文件的全路径以至解压的时候会直接解压到压缩时的路径

       -ssc[-]
              设置区分大小写模式

       -ssw   压缩共享文件

       -stl   从最近修改的文件设置存档的时间戳

       -stm{HexMask}
              设置CPU线程亲和力掩码(十六进制数)

       -stx{Type}
              该开关将禁用与指定档案类型相关的代码,
              并且无法使用指定档案类型打开档案
              (详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/stx.htm)。

       -t{Type}
              设置存档类型

       -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]
              指定如何更新档案中的文件和(或)如何创建新档案
              (详情见 https://sevenzip.osdn.jp/chm/cmdline/switches/update.htm)。

       -v{Size}[b|k|m|g]
              分卷压缩并指定每卷的大小

       -w[path]
              设置工作目录。 空路径表示一个临时目录

       -x[r[-|0]]]{@listfile|!wildcard}
              指定必须从操作中排除哪些文件名或通配符名称。

       -y     假设所有询问为“是”

诊断
       7-Zip返回以下退出代码:

              0      正常(未检测到错误或警告)

              1      警告(非致命错误)。 例如,某些文件在压缩过程中无法读取,因此它们
                     没有压缩

              2      致命错误

              7      命令行参数错误

              8      没有足够的内存进行操作

              255    用户使用Ctrl-C(或类似控件)停止了该过程

备份和限制
       在 Linux / Unix上,请勿将 7-zip 格式用于备份目的,因为 :
        - 7-zip不存储文件的所有者/组。

       在Linux / Unix上,为了备份目录,您必须使用tar:
        - 备份目录  : tar cf - directory | 7z a -si directory.tar.7z
        - 恢复备份 : 7z x -so directory.tar.7z | tar xf -

       如果要将文件和目录(不是文件的所有者)发送给
       其他Unix / MacOS / Windows用户,则可以使用7-zip格式。

         例如 : 7z a directory.7z  directory

       不要使用 "-r",因为此标志不是像你预想的那样工作的

       不要用 directory/* 替换 ".*" 
        (例如 : "directory/*" 不包含 "directory/.profile")

例一
       7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
              使用极限压缩将 "dir1" 中所有的文件压缩入 “archive.7z” 中。

       -t7z   使用 7z 格式

       -m0=lzma
              压缩算法为 LZMA

       -mx=9  压缩等级为 9(最高等级)

       -mfb=64
              LZMA 算法的快速字节 64 个

       -md=32m
              字典大小 = 32 Mb

       -ms=on 创建固实存档文件

例二
       7z a -sfx archive.exe dir1
              将 "dir1" 中所有的文件压缩入 "archive.exe" 
              这个自解压文件中(注意:自解压文件必须以 ".exe" 结尾)

例三
       7z a -mhe=on -pmy_password archive.7z a_directory
              将 "a_directory" 中所有的文件压缩入 "archive.7z" 中并使用密码加密

参见
       7zr(1), 7z(1), p7zip(1), bzip2(1), gzip(1), zip(1),

HTML 格式的文档
       /usr/share/doc/p7zip-full/DOC/MANUAL/start.htm

作者
       由 Mohammed Adnene Trojette 为 Debian 撰写。由 Robert Luberda 更新。

译者

       本文由 ADD-SP 于 2020年8月24日 翻译。

7-Zip                                              2016年3月6日                                             7z(1)