sıfırlarla katran dolgusu


10

Bir bz2 sıkıştırılmış dosya üzerinde bir katran yaparken aşağıdaki hatayla karşılaşıyorum,

tar: dump.sql: Dosya 19573448400 bayt küçüldü; sıfırlarla doldurma

Herkes bu soruna neyin sebep olabileceğini gösterebilir mi?

Teşekkürler.

Yanıtlar:


8

Bu bir hata değil. BİLGİ.

Bir Sanal Makine görüntüsünü veya başka şekilde seyrek olarak ayrılmış bir dosyayı sıkıştırdığınız / açtığınız konusunda bahse girmeye hazırım.

Bzip2 dosyanın çoğunlukla sıfır olduğunu tespit etti ve sıkıştırılmış dosyada bulunmamaları için sıkıştırdı.

Bu, gerçek boyut ile seyrek dosyaların görünür boyutu arasındaki farktır.


Yararlı bir şekilde onaylayan ve daha fazla açıklayan bir konu buldum: groups.google.com/d/msg/comp.os.linux.misc/RES9Kvw7kO4/…
Martin Eden

1
Bir hata değilse, neden sıfır dışında bir çıkış kodu üretir?
Ben Collins

Benim durumumda, .tar.bz2 dosyası aslında bozuk veriler içeriyordu: mesajda belirtilen yerde sıfır olmayan veri içermesi gereken bir sürü NUL bayt içeriyordu. Neden olduğuna dair hiçbir fikrim yok. Sadece o dosyanın başka bir .tar.bz2 dosyasını yapmaya çalıştığımda, düzgün çalıştı.
200_success

1
Bu sadece bir ham katran (sıkıştırılmamış) arşivi yaparken bana oldu. Kesinlikle bzip ile ilgili değil. Her neyse, çalışma uzunluğu kodlaması tam olarak olağandışı değil, bu yüzden bzip'in raporlamasını rahatsız edecek bir şey değil.
Wyatt8740

1

Söz konusu dosya çağrıldı dump.sql, bu yüzden muhtemelen bir bz2 sıkıştırılmış dosya değil. - Her durumda, sorunun bz2 veya dosyanın içeriği ile ilgisi yoktur.

İleti stat(), dosyadaki bir dosyanın gerçekte dosyadan okunabilecek miktardan farklı bir boyut bildirdiği anlamına gelir . Dosya çalışırken değiştirilirse, bu olabilir tar.

Bu, Linux / sys dosya sistemindekiler gibi “sanal dosyalarda” da olur. Birçoğu 4096 Bayt boyutunda (rasgele bir değer) rapor edilmiştir. Bir keresinde read(), sadece birkaç bayt döndürürler.

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.