L'estrazione di un file tar.gz restituisce, "Questo non sembra un archivio tar."


29

Ho un file tar.gz e voglio estrarlo usando il terminale. Ho usato i seguenti comandi: tar tvzf ldtp_3.5.0.orig.tar.gze tar -xvzf ldtp_3.5.0.orig.tar.gz. Tuttavia, ottengo lo stesso risultato per entrambi i file:

tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

I output del comando file mostra che è un file gzip:

$ file ldtp_3.5.0.orig.tar.gz 
ldtp_3.5.0.orig.tar.gz: gzip compressed data, from Unix

Posso estrarlo usando il tasto destro del mouse -> Estrai ma voglio farlo usando il terminale. Qualcuno può dirmi come farlo?

Risposte:


38

Guardando l'errore che stai vedendo accoppiato al fatto che puoi davvero decomprimerlo, dice che il file è un vero archivio TAR / Gzip, ma forse non viene creato un TAR immediato dopo Gzip.

Ciò significa che se lo hai scaricato da un server Web, a volte la compressione Gzip viene applicata ai contenuti Web a livello di server per accelerare il download dei contenuti. Ma se non impostato correttamente sul server per ignorare il contenuto già compresso come questo, può inavvertitamente raddoppiare i file Gzip.

Con questo in mente vedrei se semplicemente decomprimilo dalla riga di comando per vedere cosa succede. Usa un comando come questo:

gzip -d ldtp_3.5.0.orig.tar.gz

E guarda qual è il file risultante. Ho una strana sensazione dopo aver eseguito quel comando, non vedrai un ldtp_3.5.0.orig.tarnella directory ma piuttosto un file chiamato come il sorgente ldtp_3.5.0.orig.tar.gz- ma forse con modifiche sono cambiate? In tal caso, è veramente a doppia compressione. Quindi a questo punto — dopo quell'iniziale non-Gzip — puoi eseguire il tarcomando che hai in questo modo:

tar -xvzf ldtp_3.5.0.orig.tar.gz

E ora dovrebbe decomprimere correttamente l'intero archivio TAR.

Un altro modo di fare qualcosa di simile a quello processo in due fasi è inviare l'output di gzipa tarin questo modo:

gzip -dc ldtp_3.5.0.orig.tar.gz | tar -xvzf -

Il cnel gzipnonche la -fine del comando è la chiave:

  • L' copzione per gzipdirà gzipdi decomprimere al flusso di output standard.
  • Alla -fine del tarcomando significa "usa input standard". Così accoppiato con -cin gzip, il pipe prenderà quindi il flusso di output standard da cui viene convogliato gzipe lo collegherà all'ingresso standard tar.

1
Ho provato il primo comando gzip -d ldtp_3.5.0.orig.tar.gze (stranamente) ho ottenuto un .tarfile. Tuttavia, quando ho provato tar -xvf ldtp_3.5.0.orig.tarho ricevuto un errore che diceva: tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
TheRookierLearner

@TheRookierLearner Allora cosa succede se dovessi fare gzip -d ldtp_3.5.0.orig.tarsul ldtp_3.5.0.orig.tar?
Jake Gould,

Ho provato gzip -d ldtp_3.5.0.orig.tar.gze ho ricevuto il messaggio gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored gzip: on.gz: No such file or directory gzip: the.gz: No such file or directory gzip: ldtp_3.5.0.orig.tar: unknown suffix -- ignored . Dopo questo ho provato tar -xvzf ldtp_3.5.0.orig.tare ha funzionato! Grazie mille!
TheRookierLearner,
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.