Buka paket file yang dikompresi dalam .txz dan .tar dengan satu perintah

13

Saya memiliki file yang dikompresi di * .txz. Setelah membongkar itu saya menerima file * .tar. Apakah ada cara untuk membukanya dua kali dengan satu perintah? Maksud saya ekstrak file (* .tar) .txz dengan satu perintah?

Untuk tahu saya melakukannya seperti ini:

xz -d file.txz
tar xvf file.tar

Tapi saya ingin tahu apakah ada cara yang lebih baik.

Paweł Jaworowski
sumber

Jawaban:

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

Itu sama dengan arsip terkompresi mana pun. Anda seharusnya tidak perlu membuat salinan terkompresi dari file asli.

Beberapa tarimplementasi seperti versi terbaru dari GNU tarmemiliki opsi builtin untuk memanggil xzsendiri.

Dengan GNU taratau bsdtar:

tar Jxvf file.tar.xz

Padahal, jika Anda memiliki versi yang memiliki -J, kemungkinan itu akan mendeteksi xzfile secara otomatis, jadi:

tar xvf file.tar.xz

akan cukup.

Jika GNU atau BSD Anda tarterlalu tua untuk didukung xzsecara spesifik, Anda mungkin dapat menggunakan --use-compress-programopsi:

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

Salah satu keuntungan dari tarmenggunakan utilitas kompresor adalah ia dapat melaporkan kegagalannya dalam status keluarnya.

Catatan: jika tar.xzarsip telah dibuat dengan pixz, pixzmungkin telah menambahkan tarindeks ke dalamnya, yang memungkinkan mengekstraksi file secara individual tanpa harus mengompres seluruh arsip:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -
Stéphane Chazelas
sumber
Saya harus menggunakan ini: tar --use-kompres-program = xz -xvf file.tar.gz Terima kasih!
Paweł Jaworowski
6

Ini harus menjadi cara untuk pergi tar Jxvf file.txz

UVV
sumber
Ya, untuk modern tar, Anda bisa menggunakan -Jatau--xz .
Cornstalks
4

Membongkar mungkin bukan terminologi yang tepat. Anda dapat mendekompresi dengan xzdan membatalkan dengan tar.

Halaman manual untuk GNU tar( man tar, tar GNU adalah default pada Debian) menentukan bahwa Anda dapat menggunakan:

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

dan xzmendukung -dopsi ini, sehingga Anda dapat menggunakan:

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

Apa yang jauh lebih tidak jelas dari halaman manual adalah itu -xzdan -Jmerupakan singkatan --use-compress-program xzatau -I xz.

Dan apa yang tidak ditentukan sama sekali di halaman manual adalah yang bisa Anda lakukan

tar xvf file.txz 

di GNU tar dan itu akan mengenali file tar sebagai sedang dikompresi xz.

Anthon
sumber