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 的答案。

相關內容