Domanda

PROBLEMA: Mi piacerebbe essere in grado di estrarre i file tar.gz in un unico passaggio. Questo rende la mia domanda quasi identica a questa: domanda StackOverflow per tar-gz .

La mia domanda è quasi lo stesso, ma non lo stesso, perché mi piacerebbe fare questo su Windows utilizzando 7zip della riga di comando (o qualcosa di simile) all'interno di un file bat o Ruby / Perl / script python.

DOMANDA: Questa apparentemente semplice compito sta dimostrando di essere più coinvolti rispetto alla prima apparizione renderebbe fuori per essere. Qualcuno ha uno script che fa questo già?

È stato utile?

Soluzione

7z e example.tar.gz  && 7z x example.tar

Usa && per unire due comandi in un unico passaggio. Usare 7zip portatile (è necessario 7z.exe e 7z.dll solo)

Altri suggerimenti

vecchia questione, ma ero alle prese con oggi ecco la mia 2c. Lo strumento a riga di comando 7zip "7z.exe" (ho installato v9.22) può scrivere sullo standard output e leggere da standard input in modo da poter fare a meno del file tar intermedio utilizzando un tubo:

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

Dove:

x     = Extract with full paths command
-so   = write to stdout switch
-si   = read from stdin switch
-aoa  = Overwrite all existing files without prompt.
-ttar = Treat the stdin byte stream as a TAR file
-o    = output directory

Vedere il file di aiuto (7-zip.chm) nella directory di installazione per ulteriori informazioni sui comandi della riga di comando e interruttori.

notato da @zespri powershell per bufferizzare l'ingresso per il secondo processo 7z così può consumare molta memoria se il file tar è di grandi dimensioni. cioè:

& 7z x "somename.tar.gz" -so  | & 7z x -aoa -si -ttar -o"somename"

Una soluzione da questo SO rispondere se si vuole fare questo da PowerShell è di passare i comandi a cmd.exe :

& cmd.exe '/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"'

Utilizza il win32 di catrame .

tar -xvfz filename.tar.gz

Poiché hai chiesto 7-Zip o qualcosa di simile, sto fornendo uno strumento alternativo che è stato scritto per il vostro caso esatto utilizzo.

Il tartool utilità è uno strumento gratuito e open source costruito utilizzando la libreria .NET SharpZipLib.

Esempio commmand per estrarre un / .tar.gz .tgz - File,

C:\>TarTool.exe D:\sample.tar.gz ./

. Disclaimer: Io sono l'autore di questa utility

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top