Yanıtlar:
İçin -Jsıkıştırma seçeneğini kullanın xz. Ve unutmayın man tar:)
tar cfJ <archive.tar.xz> <files>
2015-08-10'u düzenleyin:
Eğer argümanlar geçiriyorsanız tar tire ile (eski: tar -cfkarşıt olarak tar cf), ardından -fseçenek geçen gelmelidir o dosya adını belirtir beri (sayesinde @ABB işaret için!). Bu durumda, komut şöyle görünür:
tar -cJf <archive.tar.xz> <files>
fve kısa çizgi olmadan bile sonuncuyu koymak muhtemelen en iyisidir .
tarmacOS'ta destekleniyor gibi görünüyor, -Jancak özellik man sayfasında verilmiyor. Buraya bakmalıydım. Rağmen onlar bölümünde XZ bahsetmek --options...
Anahtar -Jyalnızca daha yeni sistemlerde çalışır. Evrensel komut:
.Tar.xz arşivi yapmak için
tar cf - directory/ | xz -z - > directory.tar.xz
açıklama
tar cf - directorydizini / okur ve TAR biçimine koymaya başlar. Bu işlemin çıktısı standart çıktıda üretilir.
| standart çıktıyı başka bir programın girişine bağlar ...
... olan da bu xz -z -. XZ, -zarşivi standart girişten ( -) sıkıştırmak ( ) için yapılandırılmıştır .
Sen çıkışı yönlendirmek xziçin tar.xzdosyanın.
-filetildiğinde "dosyadan" anlamına gelmez xz. Bunun yerine kısadır --force( ayrıntılar için bkz. Xz (1) ) ve gerekmedikçe en iyi şekilde kullanılmaz.
tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0veya -0 -T0seçenek olarak çok fazla umursamıyorsanız , genellikle size karşılaştırılabilir veya daha hızlı bir zamanda gzip'ten daha küçük bir dosya verirken, varsayılan -6oldukça yavaştır. gzip.
Boru modunu beğendiyseniz, bu en temiz çözümdür:
tar c some-dir | xz > some-dir.tar.xz
fDosyalarla ilgilenmek için seçeneği koymak ve ardından -dosyanın standart girdi olduğunu belirtmek için kullanmak gerekli değildir . Bunun için -zseçeneği belirtmek de gerekmez xz, çünkü varsayılan değerdir.
Bu çalışır gzipve bzip2çok:
tar c some-dir | gzip > some-dir.tar.gz
veya
tar c some-dir | bzip2 > some-dir.tar.bz2
Sıkıştırmanın açılması da oldukça basittir:
xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x
Yalnızca tararşiviniz varsa aşağıdakileri kullanabilirsiniz cat:
cat archive.tar | tar x
Yalnızca dosyaları listelemeniz gerekiyorsa, kullanın tar t.
Sıkıştırma seçeneklerini kullanmak istiyorsanız xzveya tarMacOS'ta kullanıyorsanız , muhtemelen tar -cJfsözdiziminden kaçınmak istersiniz .
Buna göre man xz, bunu yapmanın yolu:
tar cf - baz | xz -4e > baz.tar.xz
Çünkü Wojciech Adam Koszek'in formatını beğendim , ama bilgiyi değil:
c belirtilen dosyalar için yeni bir arşiv oluşturur. fbir dizinden okur (en iyisi bunu ikinci koymak çünkü -cf! = -fc)- Standart Çıktıya çıkışlar| çıkışı bir sonraki komuta yönlendirirxz -4esıkıştırma seçeneği xzile çağırır -4e. (eşit -4 --extreme)> baz.tar.xz katranlı ve sıkıştırılmış dosyayı baz.tar.xz nerede -4eolduğunu kendi sıkıştırma seçeneklerini kullanabilirsiniz. Sık sık kullanmak -kiçin --keeporijinal dosya ve -9gerçekten ağır sıkıştırma için. -zmanuel xzolarak zip olarak ayarlamak için, aksi takdirde yönlendirilmezse varsayılan olarak zipping olarak ayarlanır .
Rafael van Horn'u yankılandırmak , sıkıştırmasını açmak ve yıldızını kaldırmak için (aşağıdaki nota bakın):
xz -dc baz.tar.xz | tar x
Not: Rafael'in cevabından farklı olarak , xz -dcyerine kullanın catxz. Betikler için bunu kullanmanız durumunda dokümanlar bunu önerir. Kullanmak -dya da --decompresskullanmak yerine alışkanlık edinmek unxzen iyisidir. Ancak, gerekiyorsa, komut satırından bu komutları kullanmak iyi olur.
tar -cJfMacOS'ta sözdizimini kullanmamanın özel bir nedeni var mı? Sadece merak ediyorum, çünkü bunu şimdi yapıyordum ve çalışıyor gibi görünüyordu.
Bunu dene: tar -cf file.tar file-to-compress ; xz -z file.tar
Not:
| çünkü bu komutları aynı anda çalıştırır. Komutları arka arkaya kullanmak ;veya &yürütmek.Jseçenek görmüyorum , ancak bu işe yarıyor. Sanırım RHEL6'ya ihtiyacınız var.
tar -c file-to-compress | xz -z > file.tar.xz.
&bir komutu art arda başlatmaz. Bunun yerine, ilkini bir arka plan işlemi olarak başlatır.
vkomuta anahtarlarına (tar -cJvf) dosyaları arşive eklenen gösterileri ayrıntılı olmak.