Per farla breve: lo strumento tar GNU non esegue il pipe-through di zip / unzip poiché a nessuno importa.
Lunga storia, dimensioni originali:
tar
inizialmente non era pensato per decomprimere e comprimere i file, ma per archiviare più file in un unico grande file. Dal momento che le persone non volevano solo archiviare i propri file, ma anche comprimerli, quindi eseguono il pipe tar
dell'output attraverso qualsiasi compressore che accetta l'input del flusso di dati e rilascia i risultati in un file. Profitto!
Ora, per rendere tale compito il più indolore possibile, ha tar
deciso di convogliare internamente i file generati su strumenti di compressione, come gzip, lzma, ecc., Che sono stati attivati da flag speciali per ciascun formato durante l'esecuzione tar
. Ecco perché quando provi a estrarre un file danneggiato attraverso di tar
te viene mostrato l'errore dello strumento sottostante, invece di tar
:
$ tar zxf damaged.tar.gz
gzip: damaged.tar.gz: unexpected end of file
Quindi, non è che tar
non decomprime i file zip, solo che tar
non ha la capacità di instradarlo attraverso lo strumento corretto, dal momento che nessuno si è davvero preoccupato di implementarlo e zip già svolge la funzione di archiviazione dei file del file tar formato c'è meno motivo per tar per supportarlo.
Ora, ci sono strumenti all-in-one che comprimono / decomprimono tutto ciò che si lancia loro, ancora una volta, è necessario disporre degli strumenti corretti per supportarlo effettivamente. Se non li hai, lo strumento fallirà.
bsdtar
possibile estrarre.zip
archivi: P