katran: 343398'de yalnız bir sıfır bloğu


10

ubuntu terminalinde bir tar.gz dosyasını ayıklamaya çalışırken, burada son cümlede bir hata oluştu: tar: 343398'de yalnız bir sıfır blok

bu sorunun çözümü nedir ???

Yanıtlar:


18

Tüm tar.gzdosyalarda mı yoksa sadece bu dosyada mı olduğuna bağlıdır . Bu dosya bozuk olabilir ve bu nedenle düzgün açılmaz. Ekstresine tar kullanıyorsanız, kullanmak gerekir zbir arşiv gzip'lenmiş zaman bu gerekli olarak, seçenek: tar xzvf <file.tar.gz>. Alternatif olarak, onu çıkarmaya çalışmaya değergunzip <file.tar.gz>

Dosyanın bozuk olup olmadığını öğrenmek için gzip -t <file.tar.gz>; bu komut dosyada hata olup olmadığını kontrol eder ve eğer bulunursa terminalde görünmelidir. Bu, dosyanın bozuk olup olmadığını belirtmelidir.

Dosya sağlamsa ve hata tekrarlanırsa, zero blocksGNU tar'ın beklediği gibi bir dosyanın sonunda bir çift olmadığında oluşan katranla ilgili bilinen bir sorun olduğu anlamına gelir . Bunun çözümü, -iyoksayma seçeneğini eklemektir zero blocks. Bu yüzden kullanın tar ixzvf <file.tar.gz>Sorun burada ayrıntılı olarak belgelenmiştir .


1

Aynı şey başıma da geldi çünkü stdout ve stderr'i stderr ve stdout'u (android adb terminal oturumu) ayırmayan bir kanaldan geçirdim .

Bu şekilde akışta bazı hata mesajları oluştu. Hatalı komut buydu:

  • Hatalı komut, adb kabuğu stderr ve stdout'u yerel olarak birleştirir => çöp! :
    adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar

  • Sabit komut:
    adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar

Stderr'ı / dev / null'a yönlendirmeyi unutursanız, SSH üzerinde benzer bir komut yaparsanız, bu hızlı katran ssh üzerinden akar.

ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz


1
İyi yakalama. Ayrıca ssh_config dosyasında ayarlarsanız da olur RequestTTY yes. -T Disable pseudo-tty allocation.Benim için açıkça devre dışı bırakılabilir Benim için hata tar: Skipping to next headeraslında, yalnız sıfır blok ile denediğimde meydana geldi --posix..
eMPee584

0

Geçen gün bu hatayı gzip ile sıkıştırılmamış bir arşivi açmaya çalıştım. Dosyanın kaynağı bana bilinmiyordu, ancak oluşturucunun catbirkaç katranı tek bir dosyada birleştirmek için kullanabileceğini düşündüm . Bu, dosya sonu sıfır işaretleyicisinin tarbirleştirilmiş bir arşivin ortasındaki yardımcı program tarafından okunmasına ve böylece "Yalnız bir sıfır blok" hatası görüntülemesine neden oldu.

Bu durumda, --ignore-zerosveya -iseçenek bu hataları bastırmaya yardımcı olabilir. Bakınız man tarveya bu bağlantıyı bir referans olarak.

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.