Yerçekimi ve Paul tarafından daha önce söylenenlere ek olarak :
Tarih
"Eski günlerde" olarak, cpio (seçeneğiyle -c
kullanılan) idi o daha taşınabilir ve daha esnek olduğu için diğer UNIX türevleri dosya taşımak geldiğinde kullanmak üzere alet katran . Ancak katran taşınabilirliği maddeleri 1980'lerin sonlarından beri çözülmüş olarak kabul edilebilir.
Maalesef, farklı satıcılar cpio-c
formatını düzenlemişlerdi ( GNU cpio ve seçenek için sadece kılavuz sayfasına bakınız ). O sırada tar cpio'dan daha taşınabilir hale geldi ... Farklı UNIX satıcıları bunu çözene kadar neredeyse on yıl sürdü. Having GNU tar ve GNU cpio farklı kaynaklardan gelen bantlar ile uğraşmak zorunda tüm yöneticiler için bir zorunluluk sonra yüklü olmasıyla geri edilmiştir (hatta günümüzde sanırım).-H
Kullanıcı arayüzü
tar , yöneticinin sisteme bağlı teyp sürücülerini yapılandıracağı bir teyp yapılandırma dosyası kullanabilir. Kullanıcı daha sonra, bant için tam cihaz düğümünü hatırlamak yerine "çok fazla kafa karıştırıcı olabilen ve aynı zamanda farklı UNIX platformlarında standardize edilemeyen" bant sürücüsünü 1 alacağım "derdi.
Ancak asıl fark şudur:
tar , dizinleri kendi içinde arayabilir ve komut satırı argümanlarından yedeklenecek dosyaların veya dizinlerin listesini alır.
cpio sadece kendisine söylenen dosyaları veya dizinleri arşivler, fakat alt dizinleri kendi kendine tekrarlı olarak aramaz. Ayrıca cpio stdin'den arşivlenecek öğelerin listesini alır - bu yüzden neredeyse her zaman bul ile birlikte kullanılır .
Bir cpio komutu genellikle tar ile karşılaştırıldığında acemi için korkutucu görünüyor :
$ find myfiles -depth -print0 | cpio -ovc0 | gzip -7 > myfiles.cpio.gz
$ tar czvf myfiles.tar.gz myfiles
Bence çoğu insanın arşiv dosyaları oluşturmak için tar kullanmasının asıl nedeni budur : Komple bir dizini birleştirmek gibi basit görevler için kullanımı kolaydır.
Ayrıca GNU tar-z
, arşivin anında GNU zip ile sıkıştırılmasına neden olan ve işleri daha da kolaylaştıran bir seçenek sunar .
Diğer yandan, bul & cpio ile şık şeyler yapabilirsiniz . Aslında bu bir daha yaklaşımla UNIX gibi: Neden içine dizin ağacı arama içeren cpio'nun : Zaten aklınıza gelebilecek hemen hemen hepsi bir ilgilenir bir araç varsa bulmak . Akla gelen şeyler, dosyaları yalnızca belirli bir tarihten daha yeni yedeklemektir, dosyaları aynı dosya sisteminde bulunanlarla sınırlandırır ya da grep -v
belirli dosyaları dışlamak için bulma çıktısını filtreler .
GNU katranı halkı, daha önce sadece cpio ile mümkün olan şeylerin çoğunu dahil etmek için çok çalıştılar . Aslında her iki araç da birbirinden öğrendi - ancak sadece cpio tar biçimini okuyabilir - tersi olmaz.
katran ve çıktı işleme
Söylediğin bir şeye son bir not:
Ayrıca TAR'nın STDOUT'dan sıkıştıramadığı da söylendi. Yedeklemeler için ZFS anlık görüntülerini arşivlemek / sıkıştırmak istiyorum. Bu etkiyi elde etmek için CPIO'yu bzip2 ile birleştirip birleştiremeyeceğimi merak ediyordum.
Peki, katranın her bir sürümü (GNU veya değil) bir boruda kullanılabilir. Sadece -
arşiv adı olarak bir eksi işareti ( ) kullanın :
$ tar cvf - myfiles | bzip > myfiles.tar.bz
Ayrıca GNU tar , --to-command
yine de boruyu tercih etmeme rağmen, bir işlem sonrası komutu belirtme seçeneği sunar . Belki bazı donanım aygıtlarına yazarken kullanışlıdır.
pax
: P