É um requisito para concatenar vários arquivos 7zip no Linux antes de poder descompactá-los?

4

Eu geralmente uso 7zip quando no Windows e descompactando vários arquivos 7zip. Eu me deparei com vários artigos, observando que eu preciso concatenar vários arquivos 7zip para um único arquivo zip se eu quiser 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 eu pergunto é que, ao executar o comando 7zr e {name_of_first_archive} , ele apenas descompacta o primeiro arquivo.

    
por PeanutsMonkey 18.08.2012 / 09:07

2 respostas

6

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 em .001 . Isto é provavelmente porque quando você cria um arquivo dividido usando 7z, ele nomeia cada parte do arquivo assim. 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
    
por 18.08.2012 / 23:28
2

Bem, aparentemente você não pode. Estranho, mas lá vai você. Este pequeno script fará o que você quiser (assumindo 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 tornar sua vida mais fácil, 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 como esperado:

$ multi7z *7z

ou

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

EDIT: Isso funcionará se você estiver descompactando vários arquivos independentes . Se você tiver um arquivo um dividido em vários arquivos .7z, use a resposta do @ don_crissti.

    
por 18.08.2012 / 17:05

Tags