我通常在 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 的答案。