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..