Bir tar.gz dosyasını ayıklamak, “Bu bir tar arşivine benzemiyor” şeklinde döner.


29

Bir tar.gz dosyam var ve bunu terminal kullanarak çıkarmak istiyorum. Aşağıdaki komutları kullandım: tar tvzf ldtp_3.5.0.orig.tar.gzve tar -xvzf ldtp_3.5.0.orig.tar.gz. Ancak, her iki dosya için de aynı sonucu alıyorum:

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

Dosya komutunun çıktısı gzip dosyasını gösterir:

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

Sağ Tıkla -> Ayıkla'yı kullanarak çıkarabilirim ama bunu terminal kullanarak yapmak istiyorum. Biri bana bunun nasıl yapılacağını söyleyebilir mi?

Yanıtlar:


38

Gördüğünüz hataya baktığımızda, dosyayı gerçekten açabileceğinizi ve dosyanın gerçek bir TAR / Gzip arşivi olduğunu, ancak Gzip'ten sonra hemen bir TAR yaratmadığını söylüyor.

Yani, bunu bir web sunucusundan indirdiyseniz, bazen içerik indirmeyi hızlandırmak için Gzip sıkıştırması sunucu seviyesindeki web içeriğine uygulanır. Ancak, sunucuda bu gibi sıkıştırılmış içeriği görmezden gelmek için doğru şekilde ayarlanmadıysa, yanlışlıkla Gzip dosyalarını iki katına çıkarabilir.

Bunu akılda tutarak ne olduğunu görmek için komut satırından basitçe Gzip'in çıkardığını görecektim. Bunun gibi bir komut kullanın:

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

Ve sonuçta ortaya çıkan dosyanın ne olduğuna bakın. Bu komutu çalıştırdıktan sonra komik bir his var ldtp_3.5.0.orig.tar, dizinde bir tane görmeyecek , kaynak olarak adlandırılmış bir dosya göreceksiniz ldtp_3.5.0.orig.tar.gz- - ama belki de değişmiş olabilir? Bu durumda, gerçekten çift Gzipped. Yani bu noktada - bu ilk Gzip un-sonra - böyle bir tarkomutu çalıştırabilirsiniz :

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

Ve şimdi TAR arşivinin tamamını doğru şekilde açmalı.

Bu iki aşamalı işlemine benzer bir şey yapıyor bir başka yolu borusuna çıkışı olan gzipiçin tarböyle:

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

cİçinde gziphem de -komutun sonunda anahtarıdır:

  • cSeçeneği gzipsöyleyecektir gzipstandart çıktı akımına decompress için.
  • -Sonunda tarkomut vasıtası, ile birlikte “Standart girişini kullanmak” -ciçinde gziptarafından kendisine borulu boru daha sonra standart çıkış alacak akımı gzipve standart giriş için bu bağlantı tar.

1
İlk komutu denedim gzip -d ldtp_3.5.0.orig.tar.gzve (garip bir şekilde) bir .tardosya aldım . Ancak, denediğimde tar -xvf ldtp_3.5.0.orig.tarşunu söylerken bir tar: v: Cannot open: No such file or directory tar: Error is not recoverable: exiting now
hatam oldu

@TheRookierLearner Sonra ne yapmak olsaydı olur gzip -d ldtp_3.5.0.orig.tarüzerinde ldtp_3.5.0.orig.tar?
JakeGould,

Denedim gzip -d ldtp_3.5.0.orig.tar.gzve mesajı aldım 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 . Bundan sonra denedim tar -xvzf ldtp_3.5.0.orig.tarve işe yaradı! Bir ton teşekkürler!
TheRookierLnerner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.