Normaalisti yhden tiedoston kopioiminen käytät
cp
komento, linkki lähdetiedostoon ja kohdekansioon:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
Jos haluat kopioida sen kahteen muuhun hakemistoon, monet ihmiset tekevät komentoa vain kaksi kertaa eri tavoin:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Tässä komento toimii.
echo
komento kirjoittaa normaalisti ruudulle. Tässä tapauksessa haluamme kuitenkin syöttää
echo
komento panoksena
xargs
komento. Tätä varten käytämme putken symbolia (
|
), joka syöttää yhden komennon lähdön syötteeksi toiseen.
xargs
komento suorittaa
cp
komento kolme kertaa, joka kerta jokaisen seuraavan hakemistopolun liittäminen siihen
echo
komento loppuun
cp
komento. Kolme argumenttia siirretään
xargs
mutta
-n 1
vaihtoehto
xargs
komento kertoo vain liittää yhden näistä argumenteista kerrallaan
cp
komento aina, kun se ajetaan.
Joten, pysyäksemme esimerkkinä aiemmasta, kolme erillistä
cp
yllä olevat komennot voidaan yhdistää yhdeksi tällaiseksi komennoksi:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
komento kopioida tiedosto yhdelle paikalle, voit lisätä
-i
voit kysyä, haluatko korvata olemassa olevan tiedoston. Kuitenkin
-i
vaihtoehto on vuorovaikutteinen vaihtoehto (se aiheuttaa
cp
komento pyytää käyttäjältä syötettä) ja et voi käyttää vuorovaikutteista vaihtoehtoa
cp
komento, kun sitä käytetään yhdessä
xargs
.)
Toinen asia, jota kannattaa harkita, on se, että jos kopioit hyvin suurta tiedostoa, voit lisätä ei-clobber (
-n
) -vaihtoehto
cp
komennon yllä olevaan yksittäiseen komentoon. Tämä vaihtoehto estää automaattisesti, että tiedostoa korvataan kohteessa, jos se on jo olemassa. Jos kopioit hyvin suuren tiedoston verkkoon, se voi olla hidasta ja ehkä haluat välttää tiedostojen kopioimiseen ja korvaamiseen tarvittavia resursseja. Seuraava komento lisää
-n
vaihtoehtoa, eikä kopioi tiedostoa kaiun lausekkeen argumenttien mukaisiin kohteisiin, jos tiedosto on jo olemassa kyseisessä kohteessa.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt