É necessário concatenar vários arquivos 7zip no Linux antes de poder descompactá-los?

É necessário concatenar vários arquivos 7zip no Linux antes de poder descompactá-los?

Eu geralmente uso o 7zip no Windows e descompacto vários arquivos 7zip. Encontrei vários artigos observando que preciso concatenar vários arquivos 7zip em um único arquivo zip se desejar descompactar no Linux.

  1. Isso é necessário?
  2. Não posso especificar simplesmente o primeiro dos vários arquivos 7zip?

A razão pela qual pergunto é que, ao executar o comando, 7zr e {name_of_first_archive}ele apenas descompacta o primeiro arquivo.

Responder1

Você pode extrair/descompactar arquivos divididos 7z, sem necessidade de concatenar as partes antes da extração. O único requisito é que seus arquivos tenham extensões incrementais do tipo.NNN(onde N=[0..9]) começando em0,001. Provavelmente isso ocorre porque quando você cria um arquivo dividido usando 7z, ele nomeará cada parte do arquivo desta forma. Então, tudo que você precisa fazer é executar o comando no primeiro arquivo:

[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

Responder2

Bem, aparentemente você não pode. Estranho, mas aí está. Este pequeno script fará o que você quiser (supondo que seus arquivos tenham a extensão .7z, se não, mude para qualquer extensão que eles tenham):

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

Use o sinalizador 'x' em vez do sinalizador 'e' porque 'e' extrairá todos os arquivos para o diretório atual enquanto 'x' preservará os caminhos originais.

Para facilitar sua vida, você pode adicionar esta pequena função ao seu arquivo ~/.bashrc:

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

Você pode então descompactar vários arquivos conforme esperado:

$ multi7z *7z

ou

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

EDIT: Isso funcionará se você estiver descompactando vários,independentearquivos. Se você temumarquivo dividido em muitos arquivos .7z, use a resposta de @don_crissti.

informação relacionada