28Jun

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

click fraud protection

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 izmantotu cp komandu, piesaistot avota failu un mērķa direktoriju:

cp ~ /Documents/ FileToBeCopied.txt ~ /TextFiles/

Lai to kopētu vēl diviem direktorijiem, daudzi cilvēki vienkārši palaistu komandu divasvairāk reizes ar dažādiem galamērķiem:

cp ~ /Documents/ FileToBeCopied.txt ~ /Dropbox/ cp ~ /Documents/ FileToBeCopied.txt /media/lori/MYUSBDRIVE/

Tomēr mēs varam veikt to pašu uzdevumu ar vienu komandu:

echo dir1 dir2 dir3 |xargs -n 1 cp file1

Lūk, kā šī komanda darbojas. Echo komanda parasti raksta uz ekrāna. Tomēr šajā gadījumā mēs gribam, lai echo komandas izvadi piegādātu kā xargs komandas ievadi. Lai to izdarītu, mēs izmantojam caurules simbolu( |), kas izvadi no vienas komandas piegādā citam. Xargs komanda palaidīs cp komandu trīs reizes, katru reizi pievienojot nākamo direktorijas ceļu, kas tam pievienots, no echo komandas līdz cp komandas beigām. Xargs ir nosūtīti trīs argumenti, bet xargs komandas -n 1 opcija dod komandai katru reizi pievienot tikai vienu no šiem argumentiem komandas cp komandai.

instagram viewer

Tātad, izmantojot iepriekš pieminēto piemēru, iepriekš minētās trīs atsevišķās cp komandas var apvienot vienā komandā:

echo ~ /TextFiles/ ~ / Dropbox /media/lori/ MYUSBDRIVE |xargs -n 1 cp ~ /Documents/ FileToBeCopied.txt

Ņemiet vērā, ka, ja kopēts fails pastāv kādā no norādītajiem mērķa direktorijiem, šajā galamērķa fails tiks automātiski aizstāts. Jums netiks lūgts, vai vēlaties aizstāt failu.(Parasti, ja jūs izmantojat cp komandu, lai kopētu failu vienai atrašanās vietai, varat pievienot -i opciju uzdot, vai vēlaties aizstāt esošu failu. Tomēr opcija -i ir interaktīva opcija( tas izraisacp komandu pieprasīt ievadi no lietotāja) un jūs nevarat izmantot interaktīvu opciju ar cp komandu, to lietojot kopā ar xargs.)

Viena cita lieta, kas jāņem vērā, ir tāda, ka, ja kopējat ļoti lielu failu, iespējams,vēlaties augšupielādēt komandu cp komandu no-clobber( -n).Šī 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. Tālāk norādītā komanda pievieno -n opciju un nepārkops failu nevienā galamērķī, 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 mani echo, man xargs vai man cp komandrindā Linux.