Normalt, for å kopiere en fil, ville du bruke
cp
kommandoen, kobling til kildefilen og målkatalogen:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
For å kopiere den til to flere kataloger, ville mange mennesker bare kjøre kommandoen to ganger med forskjellige destinasjoner:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Her er hvordan denne kommandoen fungerer. De
echo
kommandoen skriver normalt til skjermen. Men i dette tilfellet ønsker vi å mate utgangen av
echo
kommando som input til
xargs
kommando. For å gjøre dette bruker vi pipesymbolet (
|
) som mater utgang fra en kommando som input til en annen. De
xargs
kommandoen vil kjøre
cp
kommandoen tre ganger, hver gang du legger til den neste katalogbanen, pipet til den fra
echo
kommandoen til slutten av
cp
kommando. Det er tre argumenter som sendes til
xargs
men
-n 1
alternativ på
xargs
kommandoen forteller det å bare legge til et av disse argumentene om gangen til
cp
kommandoen hver gang den løper.
Så, å holde fast ved vårt eksempel fra tidligere, de tre separate
cp
Kommandoer ovenfor kan kombineres til en kommando som dette:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
kommandoen for å kopiere en fil til et enkelt sted, kan du legge til
-i
alternativ for å spørre om du vil erstatte en eksisterende fil. Imidlertid
-i
alternativet er et interaktivt alternativ (det forårsaker
cp
kommando for å be om innspilling fra brukeren), og du kan ikke bruke et interaktivt alternativ med
cp
kommando når du bruker den sammen med
xargs
.)
En annen ting å vurdere, er at hvis du kopierer en veldig stor fil, vil du kanskje legge til no-clobber (
-n
) alternativet til
cp
kommando i kommandoen ovenfor ovenfor. Dette alternativet forhindrer automatisk at en fil overskrives i en destinasjon hvis den allerede finnes der. Hvis du kopierer en veldig stor fil over et nettverk, kan det være sakte, og du vil kanskje unngå å bruke ressursene som kreves for å kopiere og erstatte filen. Følgende kommando legger til
-n
alternativet, og vil ikke kopiere filen til et mål som er oppført i argumentene til ekko-setningen, hvis filen allerede eksisterer i den destinasjonen.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt