Paprastai kopijuoti vieną failą naudosite
cp
komandą, nuorodą į šaltinio failą ir paskirties katalogą:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
Norėdami nukopijuoti jį į dar du katalogus, daugelis žmonių tiesiog paleisti komandą dar du kartus skirtingomis paskirtimis:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Štai kaip veikia ši komanda. The
echo
komanda paprastai rašo ekraną. Tačiau šiuo atveju mes norime tiekti produkcijos
echo
komanda kaip įnašas į
xargs
komanda Norėdami tai padaryti, mes naudojame vamzdžio simbolį (
|
), kuris perduoda iš vienos komandos kaip įvesties į kitą. The
xargs
komanda paleis
cp
komandą tris kartus, kiekvieną kartą pridedant kitą katalogo kelią, prie jo pritvirtintą iš
echo
komandą iki pabaigos
cp
komanda Pateikiami trys argumentai
xargs
bet
-n 1
parinktis
xargs
komanda nurodo tai, kad vienu metu tik pridėti vieną iš šių argumentų
cp
komanda kiekvieną kartą paleisti.
Taigi, laikydamiesi mūsų pavyzdžio iš ankstesnių, trys atskiros
cp
Aukščiau pateiktos komandos gali būti sujungtos į vieną komandą:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
komandą kopijuoti failą į vieną vietą, galite pridėti
-i
Galite paklausti, ar norite pakeisti esamą failą. Tačiau,
-i
parinktis yra interaktyvi parinktis (ji sukelia
cp
komandą prašyti vartotojo įvesties) ir jūs negalite naudoti interaktyvaus varianto su
cp
komandą, kai naudojamas kartu su
xargs
.)
Dar vienas dalykas, kurį reikia apsvarstyti, yra tai, kad jei kopijuosite labai didelį failą, galbūt norėsite pridėti "no-clobber" (
-n
) galimybė
cp
komanda per vieną komandą aukščiau. Ši parinktis automatiškai neleidžia įrašyti failo į paskirties vietą, jei jis ten jau yra. Jei kopijuosite labai didelį failą tinkle, jis gali būti lėtas ir galbūt norėsite nenaudoti išteklių, reikalingų failui kopijuoti ir pakeisti. Ši komanda prideda
-n
parinktį ir nebus nukopijuoti failo į bet kokį el. charakteristikos sąraše esantį tikslą, jei failas jau yra toje paskirties vietoje.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt