在 Linux 中,是否需要先连接多个 7zip 文件才能解压缩它们?

在 Linux 中,是否需要先连接多个 7zip 文件才能解压缩它们?

在 Windows 上解压多个 7zip 文件时,我通常使用 7zip。我读过几篇文章,其中提到如果要在 Linux 中解压,我需要将多个 7zip 文件合并为一个 zip 存档。

  1. 这有必要吗?
  2. 我能不能只指定多个 7zip 文件中的第一个?

我询问的原因是,运行该命令时7zr e {name_of_first_archive}它似乎只解压缩第一个档案。

答案1

您可以提取/解压 7z 分割档案,无需在提取之前连接各部分。唯一的要求是您的档案必须具有以下类型的增量扩展.NNN(其中 N=[0..9])从.001。这可能是因为当您使用 7z 创建拆分存档时,它会以这种方式命名存档的每个部分。然后,您所要做的就是在第一个存档上运行命令:

[me home]$ ls
diveintopython3.pdf.7z.001  diveintopython3.pdf.7z.002  diveintopython3.pdf.7z.003

[me home]$ 7zr x diveintopython3.pdf.7z.001

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)

Processing archive: diveintopython3.pdf.7z.001

Extracting  diveintopython3.pdf

Everything is Ok

Size:       2598283 Compressed: 734003

答案2

好吧,显然你不能。很奇怪,但就是这样。不过,这个小脚本可以做你想做的事(假设你的档案有扩展名 .7z,如果不是,请更改为它们的任何扩展名):

for n in *7z; do 7zr x $n; done

使用“x”而不是“e”标志,因为“e”将将所有文件提取到当前目录,而“x”将保留原始路径。

为了让您的生活更轻松,您可以将这个小功能添加到您的 ~/.bashrc 文件中:

function multi7z () {
    for n in $@; do 7zr x $n; done
}

然后您可以按预期解压缩多个档案:

$ multi7z *7z

或者

$ multi7z a.7z b.7z n.7z

编辑:如果你正在解压缩多个,这将起作用,独立的档案。如果你有存档拆分为多个 .7z 文件,请改用@don_crissti 的答案。

相关内容