Tar komutunu, dosyaları sıkıştırmasız gruplamak için nasıl kullanabilirim?


60

120.000'den fazla dosyadan oluşan çok büyük bir klasörüm var. ve onları aynı makinede (aynı bölüm) başka bir yere taşımam gerekiyor.

Bu tarkomutu tek bir birim olarak gruplandırmak ve sonra mvda son konuma getirmek için kullanmak istiyorum .

tarOnlara birlikte koşmak ve hiçbir şeyi sıkıştırmamak için hangi komutu kullanmam gerekiyor (en hızlı sonuca ihtiyacım var).


1
Neden tar kullanılır ve sadece mv (1) dosyaları kullanılmaz? Veya asıllarını kaybetmek istemiyorsanız cp (1) kullanın.
von

@ vonbrand bir ağ üzerinden tek bir sürekli dosya rsync isteyebilirsiniz. 120k daha küçük dosyaları rsyncing'den çok daha hızlı. sabit tam hızın yüksek ve düşük arasındaki fark
mwm

Yanıtlar:


85

tar varsayılan olarak sıkıştırmaz, sadece bir sıkıştırma seçeneği eklemeyin:

tar cvf myfolder.tar myfolder

Dahil ediyorum Hennes' yararlı bilgiler ekler beri cevabım yorumunu:

TAR (kaset arşivi) aslen kasette arşiv oluşturmak için kullanılan bir unix programıdır. Tüm cihazlar unix altındaki dosyalar olarak değerlendirildiğinden, bir kasete değil bir dosyaya yazmak kolaydır. Bu genellikle -f bayrağıyla yapılır. Tar cvf myfolder.tar myfolder komutu, tar, c reate , v erbose f ile filename_to_create what_to_tar komutunu belirtir. Bu hiçbir yerde sıkıştırma yoktur. Tar arşivleri (dosyalar halinde) sık sık sıkıştırma programı kullanılarak sıkıştırılır ve .Z (örneğin, file.tar.Z) elde edilir. Daha sonra z bayrağı ile gtar dahil edildi


Bu, yinelemeli olarak tüm alt klasörü ve dosyaları tar içine ekler mi?
sergserg

2
@Serg evet, olacak.
terdon

1
Teşekkürler. Genellikle hem kısa hem de uzun formda cevap vermeye çalışırım. "Evet / hayır" da olduğu gibi, kısa olan için işe yaramayacak ve neden daha uzun cevap vereceği ile ilgili açıklama. Gelecekte neden sık sık yardımcı olacağına dair bir altyapıya sahip olmak
Hennes,

@ Her zaman bir kılavuzun veya talimatların o kadar iyi olmadıklarından emin olun çünkü işleri okuduktan sonra açık bir şekilde netleştirin, bazen en iyi yol devam etmek ve komutu yine de denemek, sonra ne yaptığını göreceksiniz, ve ne yaptığını veya iyi bir fikre sahip olduğunuzu öğrendikten sonra, kılavuz sizin için onaylayabilir! tar'ı küçük bir örnek set üzerinde test etmek kolaydır. Kullanım kılavuzunun başını veya kuyruğunu yapmak zorunda kalmadan nasıl kullanılacağına dair örnekler.
barlop

En hızlı sonuç isteniyorsa, "v" bayrağını susturmak için atlamalısınız. Benim durumumda bu, bir AWS t2.medium örneğinde çalıştırıldığında komut süresini 16 saniyeden 6 saniyeye düşürdü.
David Backeus

6

@ Terdon cevabı doğru.

Ama küçük bir hata yaparken yaptım tar cvf myfolder.tar.gz myfolder. tar.gzSıkıştırılmasa da aynı yoldaki dosyalar için aynı bitiş adlarını istedim .

Bu nedenle, .gz, .ztar yapmaya çalıştığınız dosya adının sonuna benzer bir şey koyarsanız , tar uygulaması bazı sıkıştırma kullanmak istediğinizi anlar ve kullandığınıza göre uygulanır (gz = gzip).

Öyleyse, böyle bir uzantı kullanmak istiyorsanız tar.gz, bayrağı kullandığınızdan emin olun.--no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.