Parasti, lai kopētu vienu failu, jūs izmantojat
cp
komanda, kas saistīta ar avota failu un mērķa direktoriju:
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
Lai to kopētu vēl divām direktorijām, daudzi cilvēki vienkārši palaistu komandu vēl divas reizes ar dažādiem galamērķiem:
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Šeit ir redzams, kā šī komanda darbojas. The
echo
komanda parasti raksta uz ekrāna. Tomēr šajā gadījumā mēs vēlamies barot produkciju
echo
komanda kā ieguldījums
xargs
komandu Lai to izdarītu, mēs izmantojam caurules simbolu (
|
), kas baro produkciju no vienas komandas kā ievadi citai. The
xargs
komanda palaist
cp
komandu trīs reizes, katru reizi pievienojot nākamo direktorijas ceļu, kas tai pievienots no
echo
komandu uz beigām
cp
komandu Ir nosūtīti trīs argumenti
xargs
bet
-n 1
iespēja uz
xargs
komanda komandu liek tai pievienot tikai vienu no šiem argumentiem laikā
cp
komandu katru reizi, kad tas palaist.
Tātad, pielīmējiet mūsu piemēru no agrāk, trīs atsevišķi
cp
Iepriekš minētās komandas var apvienot vienā komandā šādi:
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt
cp
komandu kopēt failu vienā atrašanās vietā, jūs varat pievienot
-i
Iespēja uzdot jautājumu, vai vēlaties aizstāt esošu failu. Tomēr,
-i
iespēja ir interaktīva iespēja (tas izraisa
cp
komanda pieprasīt ievadi no lietotāja), un jūs nevarat izmantot interaktīvu iespēju ar
cp
komandu, ja to lieto kopā ar
xargs
.)
Vēl viena lieta, kas jāizskata, ir tāda, ka, ja kopējat ļoti lielu failu, iespējams, vēlēsities pievienot bez-clobber (
-n
) iespēja uz
cp
komanda vienā komandā iepriekš. Šī iespēja automātiski novērš faila pārrakstīšanu galamērķī, ja tas tur jau pastāv. Ja jūs kopējat ļoti lielu failu tīklā, tas var būt lēns, un jūs, iespējams, vēlēsities izvairīties no failiem nokopēt un aizstāt nepieciešamos resursus. Šī komanda pievieno
-n
opcija, un tā netiks nokopēta failā uz nevienu galamērķi, kas ir norādīts echo izteiksmes argumentos, ja fails jau ir šajā galamērķī.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt