Відповіді:
Це залежить від того, чи буде це з усіма 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
..