@Lekensteyn cevabına ek olarak, bu davranışın bir şey yap ve iyi yap felsefesine dayandığını eklemek isterim - tarprogram birden fazla dosyayı tek bir akışa ( .taruzantıyla) nasıl koyacağını , gzipnasıl sıkıştırılacağını bilir tek dosya ( .gzuzantı ekleme ) *. Bu araçları birleştirerek, birden çok dosyayı tek bir .tag.gzdosyaya sıkıştıran bir komut oluşturabilirsiniz .
Bu yaklaşım çok esnektir - her türlü şeyi yapmak için birkaç standart Unix komutunu birleştirebilirsiniz. Örneğin, dosyaları sıkıştırmak için daha iyi bir program yazarsanız , dosya taroluşturmasını sağlamak için değiştirmeniz gerekmez; .tar.mymegazipbunun yerine, tarçıktısını kompresörünüze aktarırsınız.
Benzer şekilde, tarSSH hakkında hiçbir şey bilmez, ancak komutları birleştirerek dosyaları arşivleyen, SSH aracılığıyla uzak bir makineye yükleyen ve orada arşivlerini kaldıran bir komut dosyası oluşturabilirsiniz.
Bunu zipUnix kaynaklı olmayan komutla karşılaştırın - tüm dizinleri sıkıştırmak, dosyaları şifrelemek, arşivi daha küçük zip dosyalarına bölmek için yerleşik araçlara sahiptir.
(dipnot) - evet, tardosyaları -zve -janahtarları kullanarak gzip veya bzip yapabilir , kolaylık sağlamak için eklenmiştir ve GNU tar aslında yumurtlama gzipveya bzip2yeni bir süreçtir.
tar c dir/ | gzip > dir.tar.gzvetar czf dir.tar.gz dir/komutlar aynı şeyi yapar. Bir örnektarSSH ile birleştirilirtar(tekrar):tar cz Documents/ | ssh user@host 'tar xz(rsync eşdeğer olacaktır:rsync -a Documents user@host:)