За яких обставин працює gunzip & tar xf, але tar xzf не спрацьовує?


9

Для ілюстрації моменту: я завантажив бібліотеку LEDA з веб-сайту компанії . Використання tar -xzf на ньому не вдається:

$ tar -xzf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz 
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Однак gunzip з подальшим tar -xf працює чудово:

$ gunzip LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar.gz
$ tar -xf LEDA-6.3-free-fedora-core-8-64-g++-4.1.2-mt.tar
# no error

Хтось може мені сказати, чому це могло бути? - Я хотів би, щоб стандартна tarкоманда працювала весь час.


Яка операційна система? IIRC є Unixes з a tarщо не реалізує -z
Bananguin

@ user1129682 З сайту компанії, схоже, у неї є лише варіанти для Linux та Win ...
MattDMo

Якщо ваш дьоготь не підтримує z, замість цього використовуйте трубу: gunzip < archive.tar.gz | tar -xмає працювати скрізь.
frostschutz

Якщо ваша копія tarне підтримує Gunzip декомпресії, ви можете зробити наступне замість: gunzip -c $file | tar -x. Це звичайно обгортати це у функції оболонки.

1
Я просто завантажив цей архів і справді tar xzfвидає помилку на Debian GNU / Linux (який, звичайно, використовує gnutar). Незвичайно.
дероберт

Відповіді:


12

Здається, що це сталося, це те, що вони подвійно стиснули архів.

Якщо ви запустите fileфайл gunzip'd, ви знайдете його архів gzip. І якщо ви перейменовуєте його знову, щоб мати .gz, ви можете його знову запустити.

Здається, нещодавно gnu tar автоматично додасть -zпараметр за умови введення файлу. Отже, тому він працює без -zопції після того, як ви вже запустили gunzipодин раз, тар автоматично додав його.

Така поведінка задокументована на інформаційній сторінці:

"Читання стислого архіву ще простіше: вам не потрібно вказувати будь-які додаткові параметри, оскільки GNU` tar 'розпізнає його формат автоматично. [...] Алгоритм розпізнавання формату базується на "підписах", спеціальній послідовності байтів у початок файлу, специфічний для певних форматів стиснення. "

Це з § 8.1.1 "Створення та читання стислих архівів".


Дуже добре помічений! Підтверджено всіма поєднаннями пістолета та дьогтю.
Майкл Шуберт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.