Відповіді:
Це залежить від того, чи буде це з усіма tar.gzфайлами або лише з цим. Цей файл може бути пошкодженим, тому не відкриється належним чином. При використанні смоли для вилучення, ви повинні використовувати zопцію, так як це необхідно , коли архів архівувати: tar xzvf <file.tar.gz>. Крім того, варто також спробувати витягнути йогоgunzip <file.tar.gz>
Щоб дізнатися, чи файл пошкоджений, запустіть gzip -t <file.tar.gz>; ця команда перевірить файл на наявність помилок, і якщо такі знайдуться, вони повинні з’явитися в терміналі. Це повинно сказати вам, чи файл пошкоджений.
Якщо файл звучить, і помилка повторюється, це означає, що, мабуть, відома проблема з tar, яка виникає, коли файл не має пари zero blocksв кінці його, як очікує GNU tar. Рішенням цього є додати -iможливість ігнорувати zero blocks. Тому використання tar ixzvf <file.tar.gz>Випуск тут детально задокументовано .
Те саме трапилося і зі мною, тому що я передавав як stdout, так і stderr через канал, який не розділяє stderr і stdout (сеанс adb-терміналу для android).
Таким чином, деякі повідомлення про помилки опинилися в потоці. Це була несправна команда:
Несправна команда, adb shell просто зливає stderr та stdout локально => сміття! :
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
Фіксована команда:
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
Те ж станеться, якщо ви виконаєте подібну команду через SSH, як ця швидка тар-стрімка через ssh, якщо ви забудете перенаправити stderr на / dev / null:
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
Я отримав цю помилку днями, намагаючись зняти архів, який не був gzipped. Джерело файлу мені було невідоме, але я подумав, що творець може використати catдля об'єднання декількох тар в одну. Це призвело до зчитування нульового маркера кінця файлу tarутилітою посеред комбінованого архіву, відображаючи помилку "Самотній нульовий блок".
Якщо це так, то варіант --ignore-zerosабо -iваріант може допомогти придушити ці помилки. Будь ласка, ознайомтесь із цим посиланнямman tar або як посилання.
RequestTTY yesв свою ssh_config. Можна явно відключити.-T Disable pseudo-tty allocation.Для мене помилка булаtar: Skipping to next headerспочатку. Одинокий нульовий блок стався, коли я спробував--posix..