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