come gonfiare ED estrarre un .tar.bz2 usando lo strumento da riga di comando a 7 zip


7

Ho un file .tar.bz2 che voglio decomprimere ed estrarre tramite lo strumento da riga di comando a 7 zip.

Quindi sostanzialmente sto cercando l'equivalente di

tar -xjf foo.tar.bz2

con 7-zip c'è solo l'opzione "x" per estrarre, così facendo

7z x foo.tar.bz2

mi dà il file foo.tar gonfiato invece di decomprimere tutte le directory all'interno del tar. Qual è l'opzione corrispondente per 7z?


Puoi aggiungere il motivo per cui vuoi farlo tramite 7-zip quando tar può gestirlo in modo più elegante.
Bagavadhar,

Risposte:


3

Con 7zip, devi eseguire il comando due volte, una volta per decomprimerlo e di nuovo per estrarlo. Il formato del file tar è solo un "batuffolo" di tutto ciò che è bloccato dall'inizio alla fine. Quindi l'intero file tar viene compresso usando vari algoritmi di compressione, nel tuo esempio bzip. Fondamentalmente il file risultante ha due livelli. Quando "estrai" il livello bzip ottieni un file tar, quindi quando estrai il file tar ottieni un mucchio di singoli file.

7zip non gestisce più livelli contemporaneamente, sebbene sia in grado di gestire entrambi i livelli:

7z x foo.tar.bz2
7z x foo.tar

In realtà gli strumenti unix standard funzionano allo stesso modo:

bunzip2 foo.tar.bz2
tar xf foo.tar

Tuttavia, il tarcomando unix ha funzioni utili che chiamano i passaggi secondari di compressione e decompressione usando un altro programma prima / dopo che gestisce la parte tar. Fondamentalmente l' -jargomento chiama bzip2/ bunzip2, semplicemente non vedi il secondo passo. Allo stesso modo -zchiamerà gzip/ gunzip, ecc.


3

Sebbene non sia possibile farlo in un solo comando, è possibile utilizzare una pipeline di shell per concatenare due comandi 7z in una riga di comando in questo modo:

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar

2

Che ne dite di una versione più corta della combinazione 7z e tar usando out e pipe standard?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.