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

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

00_lead_image_copying_to_three_locations_with_one_command

Linux komut satırıyla bir dosyayı kopyalamakkolay. Ancak, aynı dosyayı birkaç farklı konuma 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 ~/Documents/FileToBeCopied.txt ~/TextFiles/

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

cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

01_entering_cp_command_three_times

Ancak aynı görevi bir komutla da yapabiliriz:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

İşte bu komut nasıl çalışır? echo komutu normal olarak ekrana yazar. Ancak, bu durumda, bunun çıktısını beslemek istiyoruz. echo 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 echo 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 komut verin.

Yani, örneğimizden öncekilerle uymak, üç ayrı cp Yukarıdaki komutlar şunun gibi bir komuta birleştirilebilir:

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

02_using_single_command

Kopyalanan dosyanın herhangi birinde varsaBelirtilen hedef dizinlerin içinde, o hedefdeki dosya otomatik olarak değiştirilecektir. Dosyayı değiştirmek isteyip istemediğiniz sorulmaz. (Normalde, kullandığınızda cp Bir dosyayı tek bir konuma kopyalamak için komut -i Mevcut bir dosyayı değiştirmek isteyip istemediğinizi sorma seçeneği. Ancak -i 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 diğer husus, ç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.

echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

03_single_command_with_no_clobber

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.