Розпакуйте файл, стислий у .txz та .tar однією командою


13

У мене файл, стислий у * .txz. Після розпакування я отримав файл * .tar. Чи є спосіб розпакувати її двічі однією командою? Я маю на увазі розпакувати файл (* .tar) .txz однією командою?

Бо знаю, я це роблю так:

xz -d file.txz
tar xvf file.tar

Але мені цікаво, чи є приємніший спосіб.

Відповіді:


18
xz -d < file.tar.xz | tar xvf -

Це те саме, що і з будь-яким стислим архівом. Ви не повинні ніколи повинні створити незжатими копію вихідного файлу.

Деякі tarреалізації, такі як останні версії GNU, tarмають вбудовані параметри для виклику xzсамостійно.

З GNU tarабо bsdtar:

tar Jxvf file.tar.xz

Хоча, якщо у вас є версія, яка є -J, є ймовірність, що вона виявить xzфайли автоматично, так що:

tar xvf file.tar.xz

буде достатньо

Якщо ваш GNU або BSD tarзанадто старий, щоб xzспеціально його підтримувати , можливо, ви зможете скористатися --use-compress-programопцією:

tar --use-compress-program=xz -xvf file.tar.gz

Однією з переваг tarвикористання утиліти компресора є те, що він може повідомити про несправність у своєму вихідному стані.

Примітка: якщо tar.xzархів створено за допомогою pixz, pixzможливо, до нього додали tarіндекс, який дозволяє витягувати файли окремо, не маючи розпакування всього архіву:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -

Мені потрібно скористатися цим: tar --use -press-program = xz -xvf file.tar.gz Дякую!
Paweł Jaworowski


4

Розпакування, мабуть, не є правильною термінологією. Ви можете розпаковувати з xzі розпакуйте з tar.

Сторінка посібника для GNU tar( man tar, для Debian за замовчуванням тар GNU вказано, що ви можете використовувати:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

і xzпідтримує -dопцію, тому ви можете використовувати:

tar --use-compress-program xz xvf file.txz 

Що набагато менш ясно сторінка людини є те , що -xzі -Jє скороченням для --use-compress-program xzабо -I xz.

І те, що зовсім не вказано на сторінці людини, - це те, що ви можете просто зробити

tar xvf file.txz 

в GNU tar і він розпізнає файл tar, як стислий xz.

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