Anasayfa » nasıl » Linux'ta Bir Komutla Bir Dosyayı Birden Çok Dizine Kopyalama

    Linux'ta Bir Komutla Bir Dosyayı Birden Çok Dizine Kopyalama

    Linux komut satırı ile bir dosyayı kopyalamak kolaydır. Ancak, aynı dosyayı birkaç farklı yere kopyalamak istiyorsanız ne yapmalıyım? Bu da kolay, ve size bunu tek bir komutla nasıl yapacağınızı göstereceğiz..

    Normalde, bir dosyayı kopyalamak için cp komut, kaynak dosyaya ve hedef dizine bağlanır:

    cp ~ / Dökümanlar / FileToBeCopied.txt ~ / TextFiles /

    Bunu iki dizine kopyalamak için birçok kişi komutu sadece iki kez daha çalıştıracak, farklı hedeflerle:

    cp ~ / Belgeler / FileToBeCopied.txt ~ / Dropbox /
    cp ~ / Dökümanlar / FileToBeCopied.txt / media / lori / MYUSBDRIVE /

    Ancak aynı görevi tek bir komutla da yapabiliriz:

    echo dir1 dir2 dir3 | xargs -n 1 cp dosyası1

    İşte bu komut nasıl çalışır? Eko komutu normal olarak ekrana yazar. Ancak, bu durumda, bunun çıktısını beslemek istiyoruz. Eko giriş olarak komut xargs Komut. Bunu yapmak için, boru sembolünü kullanırız ( | ) çıktıyı bir komuttan diğerine girdi olarak besler. xargs komutunu çalıştıracak cp her seferinde kendisine bir sonraki dizin yolunu eklemek için üç kez komut Eko sonuna kadar komut cp Komut. İletilen üç argüman var xargs , fakat -n 1 seçeneği xargs komutu bir seferde bu argümanlardan sadece birini eklemesini söyler. cp Her çalıştırıldığında emir ver.

    Yani, bizim örneğimize öncekinden, üç ayrı cp Yukarıdaki komutlar şöyle bir komuta birleştirilebilir:

    yankı ~ / TextFiles / ~ / Dropbox / ortam / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Belgeler / FileToBeCopied.txt

    Kopyalanan dosyanın belirtilen hedef dizinlerden birinde bulunması durumunda, o hedefdeki dosyanın otomatik olarak değiştirileceğini unutmayın. Dosyayı değiştirmek isteyip istemediğiniz sorulmaz. (Normalde, kullandığınızda cp Bir dosyayı tek bir konuma kopyalamak için komut -ben Mevcut bir dosyayı değiştirmek isteyip istemediğinizi sorma seçeneği. Ancak -ben seçenek etkileşimli bir seçenektir ( cp kullanıcıdan giriş istemek için komut) ve) ile etkileşimli bir seçeneği kullanamazsınız. cp ile birlikte kullanıldığında komut xargs .)

    Dikkate alınması gereken bir başka şey, çok büyük bir dosyayı kopyalıyorsanız, no-clobber ( -n ) seçeneği cp Yukarıdaki tek komutta komut. Bu seçenek, zaten varsa, bir dosyanın hedefte üzerine yazılmasını önler. Bir ağ üzerinden çok büyük bir dosyayı kopyalıyorsanız, yavaş olabilir ve dosyayı kopyalamak ve değiştirmek için gereken kaynakları kullanmaktan kaçınmak isteyebilirsiniz. Aşağıdaki komut, -n seçeneği ve dosya zaten bu dosyada mevcutsa, dosyayı echo deyimindeki argümanlarda listelenen hiçbir hedefe kopyalamaz.

    yankı ~ / TextFiles / ~ / Dropbox / ortam / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Belgeler / FileToBeCopied.txt

    Bu komutlardan herhangi biri hakkında daha fazla bilgi için Linux'ta komut satırına man echo, man xargs veya man cp yazın..