Faila kopēšana ar Linux komandrindu ir vienkārša. Tomēr, ko vēlaties, ja vēlaties kopēt to pašu failu vairākās citās vietās? Tas ir arī viegli, un mēs parādīsim, kā to izdarīt, izmantojot vienu komandu.
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 /
Tomēr mēs varam darīt to pašu uzdevumu ar vienu komandu:
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Lūk, 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 palaists.
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
Ievērojiet, ka, ja kopēts fails pastāv kādā no norādītajiem galamērķa direktorijiem, šajā galamērķa failā tiks automātiski aizstāts. Jums netiks lūgts, vai vēlaties aizstāt failu. (Parasti, kad jūs izmantojat 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 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, kas nepieciešami, lai failu kopētu un aizstātu. Šī 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
Lai iegūtu vairāk informācijas par jebkuru no šīm komandām, ierakstiet komandu Linux etiķeti, vīrieti xargs vai vīrusu cp.