Normálne by ste mali kopírovať jeden súbor, ktorý by ste použili
cp
príkaz, prepojenie na zdrojový súbor a cieľový adresár:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
Ak ho chcete skopírovať do dvoch ďalších adresárov, mnohí ľudia by spustili príkaz ešte viackrát, s rôznymi cieľmi:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Tu je príkaz.
echo
príkaz normálne zapisuje na obrazovku. V tomto prípade však chceme napájať výstup
echo
príkaz ako vstup do
xargs
Príkaz. Na tento účel používame symbol potrubia (
|
), ktorý posiela výstup z jedného príkazu ako vstup do iného.
xargs
príkaz spustiť
cp
príkaz trikrát zakaždým, keď pripojíte ďalšiu cestu k adresáru, ktorá je k nej pripojená
echo
na konci príkazu
cp
Príkaz. K dispozícii sú tri argumenty
xargs
ale
-n 1
možnosť na
xargs
príkaz povie, aby pridal iba jeden z týchto argumentov naraz
cp
príkaz pri každom spustení.
Takže, držať sa nášho príkladu z predchádzajúcich, tri oddelené
cp
vyššie uvedené príkazy možno kombinovať do jedného príkazu, ako je tento:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
Ak chcete skopírovať súbor na jedno miesto, môžete ho pridať
-i
možnosť sa opýtať, či chcete nahradiť existujúci súbor. Avšak
-i
možnosť je interaktívna voľba (spôsobuje
cp
príkaz na zadanie vstupu od užívateľa) a nemôžete použiť interaktívnu možnosť s
cp
príkaz pri jeho použití v spojení s
xargs
.)
Ďalšia vec, ktorú treba brať do úvahy, je, že ak kopírujete veľmi veľký súbor, možno budete chcieť pridať "no-clobber"
-n
) možnosť na
cp
príkaz v jedinom príkaze vyššie. Táto možnosť automaticky zabraňuje prepísaniu súboru do cieľa, ak už existuje. Ak kopírujete veľmi veľký súbor cez sieť, môže to byť pomalé a možno by ste sa chceli vyhnúť používaniu zdrojov potrebných na kopírovanie a nahradenie súboru. Nasledujúci príkaz pridá
-n
a súbor nebude kopírovať do žiadneho cieľa uvedeného v argumentoch do príkazu echo, ak súbor už v danom cieli existuje.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt