@Lekensteyn cevabına ek olarak, bu davranışın bir şey yap ve iyi yap felsefesine dayandığını eklemek isterim - tar
program birden fazla dosyayı tek bir akışa ( .tar
uzantıyla) nasıl koyacağını , gzip
nasıl sıkıştırılacağını bilir tek dosya ( .gz
uzantı ekleme ) *. Bu araçları birleştirerek, birden çok dosyayı tek bir .tag.gz
dosyaya 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 tar
oluşturmasını sağlamak için değiştirmeniz gerekmez; .tar.mymegazip
bunun yerine, tar
çıktısını kompresörünüze aktarırsınız.
Benzer şekilde, tar
SSH 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 zip
Unix 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, tar
dosyaları -z
ve -j
anahtarları kullanarak gzip veya bzip yapabilir , kolaylık sağlamak için eklenmiştir ve GNU tar aslında yumurtlama gzip
veya bzip2
yeni bir süreçtir.
tar c dir/ | gzip > dir.tar.gz
vetar czf dir.tar.gz dir/
komutlar aynı şeyi yapar. Bir örnektar
SSH ile birleştirilirtar
(tekrar):tar cz Documents/ | ssh user@host 'tar xz
(rsync eşdeğer olacaktır:rsync -a Documents user@host:
)