Kā kopēt failu vairākām direktorijām ar vienu komandu Linux

Kā kopēt failu vairākām direktorijām ar vienu komandu Linux
Kā kopēt failu vairākām direktorijām ar vienu komandu Linux
Anonim
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 viegli arī, un mēs jums parādīsim, kā to izdarīt ar vienu komandu.
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 viegli arī, un mēs jums parādīsim, kā to izdarīt ar 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:
Tomēr mēs varam darīt to pašu uzdevumu ar vienu komandu:

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

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
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 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

Ieteicams: