Biasanya, untuk menyalin satu file, Anda akan menggunakan
cp
perintah, menautkan ke file sumber dan direktori tujuan:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
Untuk menyalinnya ke dua direktori lagi, banyak orang hanya akan menjalankan perintah dua kali lagi, dengan tujuan yang berbeda:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Beginilah cara kerja perintah ini. Itu
echo
perintah biasanya menulis ke layar. Namun, dalam hal ini, kami ingin memberi makan output dari
echo
perintah sebagai masukan ke
xargs
perintah. Untuk melakukan ini, kami menggunakan simbol pipa (
|
) yang memberi makan output dari satu perintah sebagai input ke yang lain. Itu
xargs
perintah akan menjalankan
cp
perintah tiga kali, setiap kali menambahkan jalur direktori berikutnya disalurkan ke dari
echo
perintah ke ujung
cp
perintah. Ada tiga argumen yang diteruskan ke
xargs
tetapi
-n 1
opsi pada
xargs
perintah memberitahukannya untuk hanya menambahkan salah satu dari argumen tersebut pada satu waktu ke
cp
perintah setiap kali ini dijalankan.
Jadi, untuk tetap dengan contoh kita dari sebelumnya, tiga terpisah
cp
perintah di atas dapat digabungkan menjadi satu perintah seperti ini:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
perintah untuk menyalin file ke satu lokasi, Anda dapat menambahkan
-i
opsi untuk menanyakan apakah Anda ingin mengganti file yang sudah ada. Namun, itu
-i
pilihan adalah opsi interaktif (itu menyebabkan
cp
perintah untuk meminta masukan dari pengguna) dan Anda tidak dapat menggunakan opsi interaktif dengan
cp
perintah saat menggunakannya bersama
xargs
.)
Satu hal lain yang perlu dipertimbangkan, adalah jika Anda menyalin file yang sangat besar, Anda mungkin ingin menambahkan no-clobber (
-n
) pilihan untuk
cp
perintah dalam satu perintah di atas. Opsi ini secara otomatis mencegah file dari yang ditimpa di tujuan jika sudah ada di sana. Jika Anda menyalin file yang sangat besar melalui jaringan, itu mungkin lambat dan Anda mungkin ingin menghindari penggunaan sumber daya yang diperlukan untuk menyalin dan mengganti file. Perintah berikut menambahkan
-n
pilihan, dan tidak akan menyalin file ke tujuan apa pun yang tercantum dalam argumen ke pernyataan gema, jika file sudah ada di tujuan itu.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt