如何在Linux命令行上使用7zip archiver

时间:2020-03-05 15:25:51  来源:igfitidea点击:

如果我们是Windows用户,我们肯定会使用7zip文件归档。
它不仅具有最高的压缩比,而且还支持7z,Lzma2,XZ,拉链,ZIP64,CAB,RAR等一系列档案格式。
在本文中,我们将讨论如何在Linux命令行上使用7zip archiver。

如果系统上未安装7zip,请通过我们喜欢的命令行下载管理器安装它。
例如,我使用以下命令来安装它:

$sudo apt-get install p7zip-full

安装包后,"7z"命令应执行归档和提取工作。
在本文中,我们将讨论如何在Linux命令行上使用7zip archiver(具有最高压缩率的幂)。

测试环境

以下是本文使用的测试环境的详细信息:

  • OS - Ubuntu 13.04
  • shell - Bash 4.2.45
  • 应用 - P7Zip-Full 9.20.1~DFSG.1-4

一些例子

在我们从示例开始之前,值得注意的点是7z命令提供工作的函数字母,如命令行选项,而是没有散列( - )。
这些函数字母告诉该命令需要执行该功能。

以下是在Linux命令行上使用7zip的一些示例:

1)使用功能字母'A'创建一个简单的.7z归档

要创建.7z存档,请使用这样的命令:

z a output.7z output1 output2 output3
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive output.7z
Compressing output1
Compressing output2
Compressing output3
Everything is Ok

因此,我们可以看到7z命令通过函数字母'a',后跟要创建的存档的名称,然后是要包含在存档中的文件的名称。
执行此命令后,生成具有相同名称的存档。

以下是我们如何验证相同的:

$ls output.7z
output.7z

不仅是7z档案,我们还可以创建其他档案。
例如,允许创建一个.zip存档:

z a output.zip output1 output2 output3
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive output.zip
Compressing output1
Compressing output2
Compressing output3
Everything is Ok
$ls output.zip
output.zip

2)使用函数字母'e'提取存档

就像'a'一样用于将文件添加到存档,函数字母'e'可用于提取存档。

例如,允许允许提取我们在最后一个示例中创建的Output.7z存档:

z e output.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: output.7z
Extracting output1
Extracting output2
Extracting output3
Everything is Ok
Files: 3
Size: 101
Compressed: 248
$ls output*
output1 output2 output3 output.7z

因此,我们可以看到文件已从存档中提取成功。

3)使用功能字母'L'列出存档的详细信息

如果我们想要列出存档的详细信息,则可以使用将其名称作为参数与7z命令一起以及功能字母'L'。

这是一个例子:

z l output.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Listing archive: output.7z
-
Path = output.7z
Type = 7z
Method = LZMA
Solid = +
Blocks = 1
Physical Size = 248
Headers Size = 176
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ -----------------------
2013-08-19 11:25:32 ....A 18 72 output1
2013-08-15 21:49:55 ....A 13 output2
2013-08-15 21:51:00 ....A 70 output3
------------------- ----- ------------ ------------ -----------------------
101 72 3 files, 0 folders

因此,我们可以看到输出中列出了存档内容的详细信息。

4)使用功能字母'U'更新存档

假设我们创建文件夹的存档(包含某些文件)。

$ls
new_dir
z a new.7z new_dir/
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Creating archive new.7z
Compressing new_dir/output1
Compressing new_dir/output2
Compressing new_dir/output3
Everything is Ok
$ls
new.7z new_dir

现在,在一段时间后,将一些新文件添加到文件夹中,并希望将它们添加到存档中。
因此,而不是创建一个新的存档,我们可以通过以下方式更新现有的存档:

z u new.7z new_dir/
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Scanning
Updating archive new.7z
Everything is Ok

这样你可以更新存档。

5)使用功能字母'T'测试存档的完整性

以下是如何测试存档的完整性的示例:

z t new.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: new.7z
Testing new_dir/output1
Testing new_dir/output2
Testing new_dir/output3
Testing new_dir/output4
Testing new_dir
Everything is Ok
Folders: 1
Files: 4
Size: 101
Compressed: 276

但如果存在一些问题,完整性检查真的很有帮助。
这是一个例子:

z t new.7z
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_IN,Utf16=on,HugeFiles=on,2 CPUs)
Processing archive: new.7z
Error: Can not open file as archive