Başka hiç kimsenin GNU'nun modern sürümlerinin tarsiz paketlerken sıkıştırmanıza izin verdiğinden bahsetmemiş olması garip :
tar -czf output.tar.gz directory1 ...
tar -cjf output.tar.bz2 directory2 ...
Ayrıca, ' -c' (stdout'a veya stdin'den) ve ' -d' (açma) seçeneklerini desteklemesi koşuluyla, seçtiğiniz kompresörü de kullanabilirsiniz :
tar -cf output.tar.xxx --use-compress-program=xxx directory1 ...
Bu, herhangi bir alternatif kompresörü belirlemenize izin verir.
[ Eklendi : Dosyalardan ayıklıyorsanız gzipveya bzip2sıkıştırılmışsa, GNU bunları tarotomatik olarak algılar ve uygun programı çalıştırır. Yani şunları kullanabilirsiniz:
tar -xf output.tar.gz
tar -xf output.tgz # A synonym for the .tar.gz extension
tar -xf output.tar.bz2
ve bunlar uygun şekilde ele alınacaktır. Standart olmayan bir kompresör kullanıyorsanız, ekstraksiyonu yaparken bunu belirtmeniz gerekir.]
Ayrılmanın nedeni, seçilen cevapta olduğu gibi, görevlerin ayrılmasıdır. Diğer şeylerin yanı sıra, bu, insanların cpio(yerine tar) dosyaları paketlemek için ' ' programını kullanabileceği ve daha sonra tercih edilen kompresörü kullanabileceği anlamına gelir (bir zamanlar, tercih edilen kompresör pack, daha sonra idi compress(ki bu, pack) ve daha sonra gzipher iki öncülünün etrafında halkalar dolaşan ve tamamen rekabet eden zip(Unix'e taşınmıştır, ancak orada yerel değildir) ve şimdi bzip2benim deneyimime göre genellikle% 10-20 avantaja sahiptir gzip.
[ Eklendi : yanıtında cpiokomik geleneklere sahip birisi not edildi . Bu doğru, ancak GNU tarilgili seçenekleri (' -T -') cpioalana kadar, belirli bir dizinin altındaki her şeyi arşivlemek istemediğinizde daha iyi bir komuttu - aslında hangi dosyaların arşivleneceğini tam olarak seçebiliyordunuz. Olumsuz cpiosiz sadece o oldu olabilirdi dosyaları seçin - Eğer vardı onları seçin. Hala cpiopuanların olduğu bir yer var ; herhangi bir ara depolama olmadan bir dizin hiyerarşisinden diğerine yerinde kopyalama yapabilir:
cd /old/location; find . -depth -print | cpio -pvdumB /new/place
Bu arada, ' -depth' seçeneği findbu bağlamda önemlidir - dizinlerin kendi izinlerini ayarlamadan önce dizinlerin içeriğini kopyalar. Bu cevaba eklemeyi girmeden önce komutu kontrol ettiğimde, bazı salt okunur dizinleri kopyaladım (555 izni); kopyayı silmeye gittiğimde, ' rm -fr /new/place' bitmeden önce dizinlerdeki izinleri gevşetmem gerekti. -depthSeçenek olmasaydı, cpiokomut başarısız olurdu. Bunu yalnızca temizlik yapmaya gittiğimde yeniden hatırladım - aktarılan formül benim için bu kadar otomatikti (esas olarak uzun yıllar boyunca birçok tekrar sayesinde). ]