在 Windows 上解压多个 7zip 文件时,我通常使用 7zip。我读过几篇文章,其中提到如果要在 Linux 中解压,我需要将多个 7zip 文件合并为一个 zip 存档。
- 这有必要吗?
- 我能不能只指定多个 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 的答案。