Saya mencoba membuat .tar.xz
arsip terkompresi dalam satu perintah. Apa sintaksis spesifik untuk itu?
Saya sudah mencoba tar cf - file | xz file.tar.xz
, tetapi itu tidak berhasil.
compression
archive
tar
xz
George K.
sumber
sumber
v
perintah switch (tar -cJvf
) menjadi verbose menunjukkan file yang ditambahkan ke arsip.f
terakhir, bahkan tanpa tanda hubung.tar
pada macOS tampaknya mendukung-J
tetapi fitur ini tidak diberikan di halaman manual. Harus mencarinya di sini. Meskipun mereka menyebutkan XZ di bagian tentang--options
...Switch
-J
hanya berfungsi pada sistem yang lebih baru. Perintah universal adalah:Untuk membuat arsip .tar.xz
Penjelasan
tar cf - directory
membaca direktori / dan mulai meletakkannya ke format TAR. Output dari operasi ini dihasilkan pada output standar.|
menyalurkan output standar ke input program lain ...... yang kebetulan terjadi
xz -z -
. XZ dikonfigurasi untuk mengompresi (-z
) arsip dari input standar (-
).Anda mengarahkan output dari
xz
ketar.xz
file.sumber
-f
tidak berarti "dari file" saat diteruskan kexz
. Sebaliknya itu adalah kependekan dari--force
(lihat xz (1) untuk detailnya), dan paling baik tidak digunakan kecuali diperlukan.tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0
atau-0 -T0
sebagai opsi, yang biasanya masih memberi Anda file yang lebih kecil daripada gzip dalam waktu yang sebanding atau lebih cepat, sementara standarnya-6
jauh lebih lambat dari gzip.Jika Anda menyukai mode pipa, ini adalah solusi paling bersih:
Tidak perlu menempatkan
f
opsi untuk menangani file dan kemudian menggunakan-
untuk menentukan bahwa file adalah input standar. Ini juga tidak perlu untuk menentukan-z
opsi untukxz
, karena itu default.Ini bekerja dengan
gzip
danbzip2
juga:atau
Dekompresi juga cukup mudah:
Jika Anda hanya memiliki
tar
arsip, Anda dapat menggunakancat
:Jika Anda hanya perlu mendaftarkan file, gunakan
tar t
.sumber
Menggunakan opsi kompresi xz
Jika Anda ingin menggunakan opsi kompresi untuk
xz
, atau jika Anda menggunakantar
pada MacOS, Anda mungkin ingin menghindaritar -cJf
sintaksis.Menurut
man xz
, cara untuk melakukan ini adalah:tar cf - baz | xz -4e > baz.tar.xz
Karena saya suka format Wojciech Adam Koszek , tetapi tidak informasi:
c
membuat arsip baru untuk file yang ditentukan.f
membaca dari direktori (lebih baik menempatkan ini detik karena-cf
! =-fc
)-
output ke Output Standar|
output pipa ke perintah berikutnyaxz -4e
panggilanxz
dengan-4e
opsi kompresi. (sama dengan-4
--extreme
)> baz.tar.xz
mengarahkan file tar dan terkompresi kebaz.tar.xz
di mana
-4e
, gunakan opsi kompresi Anda sendiri. Saya sering menggunakan-k
untuk--keep
file asli dan-9
untuk kompresi benar-benar berat.-z
untuk secara manual diaturxz
ke zip, meskipun default untuk zip jika tidak diarahkan.Untuk uncompress dan untar
Untuk menggemakan Rafael van Horn , untuk membuka kompresi & untar (lihat catatan di bawah):
Catatan: tidak seperti jawaban Rafael , gunakan
xz -dc
sebagai ganticatxz
. Dokumen merekomendasikan ini jika Anda menggunakan ini untuk skrip. Terbaik untuk memiliki kebiasaan menggunakan-d
atau--decompress
bukannyaunxz
juga. Namun, jika Anda harus, menggunakan perintah-perintah dari baris perintah baik-baik saja.sumber
tar -cJf
sintaks pada MacOS? Hanya ingin tahu, karena saya baru saja melakukan itu dan sepertinya berhasil.Coba ini:
tar -cf file.tar file-to-compress ; xz -z file.tar
catatan:
|
karena ini menjalankan perintah secara bersamaan. Menggunakan;
atau&
mengeksekusi perintah satu demi satu.sumber
J
opsi, tetapi ini berfungsi. Saya pikir Anda membutuhkan RHEL6.tar -c file-to-compress | xz -z > file.tar.xz
.&
tidak akan meluncurkan perintah satu demi satu. Sebagai gantinya, itu akan meluncurkan yang pertama sebagai proses latar belakang.