了解 7z 命令开关(一)
创始人
2024-03-01 20:22:33
0

7z 无疑是一个功能强大的强大的归档工具(声称提供最高的压缩比)。在 HowtoForge 中,我们已经已经讨论过如何安装和使用它。但讨论仅限于你可以使用该工具提供的“功能字母”来使用基本功能。

在本教程中,我们将扩展对这个工具的说明,我们会讨论一些 7z 提供的“开关”。 但在继续之前,需要说明的是,本教程中提到的所有说明和命令都已在 Ubuntu 16.04 LTS 上进行了测试。

注意:我们将使用以下截图中显示的文件来执行使用 7zip 的各种操作。

ls from test directory

包含文件

7z 工具允许你有选择地将文件包含在归档中。可以使用 -i 开关来使用此功能。

语法:

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

比如,如果你想在归档中只包含 “.txt” 文件,你可以使用下面的命令:

$ 7z a ‘-i!*.txt’ include.7z

这是输出:

add files to 7zip

现在,检查新创建的归档是否只包含 “.txt” 文件,你可以使用下面的命令:

$ 7z l include.7z

这是输出:

Result

在上面的截图中,你可以看到 “testfile.txt” 已经包含到归档中了。

排除文件

如果你想要,你可以排除不想要的文件。可以使用 -x 开关做到。

语法:

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

比如,如果你想在要创建的归档中排除 “abc.7z” ,你可以使用下面的命令:

$ 7z a ‘-x!abc.7z’ exclude.7z

这是输出:

exclude files from 7zip

要检查最后的归档是否排除了 “abc.7z”, 你可以使用下面的命令:

$ 7z l exclude.7z

这是输出:

result of file exclusion

上面的截图中,你可以看到 “abc.7z” 已经从新的归档中排除了。

专业提示:假设任务是排除以 “t” 开头的所有 .7z 文件,并且包含以字母 “a” 开头的所有 .7z 文件。这可以通过以下方式组合 -i-x 开关来实现:

$ 7z a '-x!t*.7z' '-i!a*.7z' combination.7z

设置归档密码

7z 同样也支持用密码保护你的归档文件。这个功能可以使用 -p 开关来实现。

$ 7z a [archive-filename] -p[your-password] -mhe=[on/off]

注意-mhe 选项用来启用或者禁用归档头加密(默认是“off”)。

例子:

$ 7z a password.7z -pHTF -mhe=on

无需多说,当你解压密码保护的归档时,工具会向你询问密码。要解压一个密码保护的文件,使用 e 功能字母。下面是例子:

$ 7z e password.7z

protect 7zip archive with a password

设置输出目录

工具同样支持解压文件到你选择的目录中。这可以使用 -o 开关。无需多说,这个开关只在含有 e 或者 x 功能字母的时候有用。

$ 7z [e/x] [existing-archive-filename] -o[path-of-directory]

比如,假设下面命令工作在当前的工作目录中:

$ 7z e output.7z -ohow/to/forge

-o 开关的值所指的那样,它的目标是解压文件到 ./how/to/forge 中。

这是输出:

7zip output directory

在上面的截图中,你可以看到归档文件的所有内容都已经解压了。但是在哪里?要检查文件是否被解压到 ./how/to/forge,我们可以使用 ls -R 命令。

result

在上面的截图中,我们可以看到 .7z 中的内容都被解压到 ./how/to/forge 中。

创建多个卷

借助 7z 工具,你可以为归档创建多个卷(较小的子档案)。当通过网络或 USB 传输大文件时,这是非常有用的。可以使用 -v 开关使用此功能。这个开关需要指定子档案的大小。

我们可以以字节(b)、千字节(k)、兆字节(m)和千兆字节(g)指定子档案大小。

$ 7z a [archive-filename] [files-to-archive] -v[size-of-sub-archive1] -v[size-of-sub-archive2] ....

让我们用一个例子来理解这个。请注意,我们将使用一个新的目录来执行 -v 开关的操作。

这是目录内容的截图:

7zip volumes

现在,我们运行下面的命令来为一个归档文件创建多个卷(每个大小 100b):

7z a volume.7z * -v100b

这是截图:

compressing volumes

现在,要查看创建的子归档,使用 ls 命令。

list of archives

如下截图所示,一共创建四个卷 - volume.7z.001、volume.7z.002、volume.7z.003 和 volume.7z.004

注意:你可以使用 .7z.001 归档文件来解压。但是,要这么做,其他所有的卷都应该在同一个目录内。

设置归档的压缩级别

7z 允许你设置归档的压缩级别。这个功能可以使用 -m 开关。7z 中有不同的压缩级别,比如:-mx0-mx1-mx3-mx5-mx7-mx9

这是这些压缩级别的简要说明:

  • mx0 = 完全不压缩 - 只是复制文件到归档中。
  • mx1 = 消耗最少时间,但是压缩最小。
  • mx3 = 比 -mx1 好。
  • mx5 = 这是默认级别 (常规压缩)。
  • mx7 = 最大化压缩。
  • mx9 = 极端压缩。

注意:关于这些压缩级别的更多信息,阅读这里

$ 7z a [archive-filename] [files-to-archive] -mx=[0,1,3,5,7,9]

例如,我们在目录中有一堆文件和文件夹,我们每次尝试使用不同的压缩级别进行压缩。作为一个例子,这是当使用压缩级别 “0” 时创建存档时使用的命令。

$ 7z a compression(-mx0).7z * -mx=0

相似地,其他命令也这样执行。

以下是输出档案(使用 “ls” 命令生成)的列表,其名称表示其创建中使用的压缩级别,输出中的第五列显示压缩级别对其大小的影响。

7zip compression level

显示归档的技术信息

如果需要,7z 还可以在标准输出中显示归档的技术信息 - 类型、物理大小、头大小等。可以使用 -slt 开关使用此功能。 此开关仅适用于带有 l 功能字母的情况下。

$ 7z l -slt [archive-filename]

比如:

$ 7z l -slt abc.7z

这是输出:

指定创建归档的类型

如果你想要创建一个非 7z 的归档文件(这是默认的创建类型),你可以使用 -t 开关来指定。

$ 7z a -t[specify-type-of-archive] [archive-filename] [file-to-archive]

下面的例子展示创建了一个 .zip 文件:

7z a -tzip howtoforge *

输出的文件是 “howtoforge.zip”。要交叉验证它的类型,使用 file 命令:

因此,howtoforge.zip 的确是一个 ZIP 文件。相似地,你可以创建其他 7z 支持的归档。

总结

你将会认识到, 7z 的 “功能字母” 以及 “开关” 的知识可以让你充分利用这个工具。我们还没有完成开关的部分 - 其余部分将在第 2 部分中讨论。


via: https://www.howtoforge.com/tutorial/understanding-7z-command-switches/

作者:Himanshu Arora 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

7z

相关内容

如何在 Ubuntu 和其...
不能在 Linux 中提取 .7z 文件?学习如何在 Ubuntu...
2024-03-02 02:29:13
了解 7z 命令开关(一)
7z 无疑是一个功能强大的强大的归档工具(声称提供最高的压缩比)。...
2024-03-01 20:22:33
在 Linux 系统下从 ...
假设你的 Linux 服务器上有一个超大的 ISO 镜像文件,你想...
2024-03-01 18:22:17
Linux有问必答:Lin...
问题: 我需要要从 ISO 映像中获取某些文件,为此我想要使用 7...
2024-03-01 14:39:21

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...
如何检查你的 Linux 系统... 不知道在使用哪个初始化系统?以下是方法。每个主流 Linux 发行版(包括 Ubuntu、Fedor...