Hvernig á að nota cp stjórn á áhrifaríkan hátt í Linux [14 dæmi]


Stutt: Í þessari handbók sem auðvelt er að fylgja eftir munum við ræða nokkur hagnýt dæmi um cp skipunina. Eftir að hafa fylgst með þessari handbók munu notendur geta afritað skrár og möppur auðveldlega í Linux með því að nota skipanalínuviðmótið.

Sem Linux notendur höfum við samskipti við afritunarskrár og möppur. Vissulega getum við notað grafískan skráastjóra til að framkvæma afritunaraðgerðina. Hins vegar kjósa flestir Linux notendur að nota cp skipunina vegna einfaldleika hennar og ríkrar virkni.

Í þessari byrjendavænu handbók munum við læra um cp skipunina. Eins og nafnið gefur til kynna er cp skipunin notuð til að afrita skrár og möppur á tiltekinni slóð.

Í þessari handbók munum við skilja notkun cp skipunarinnar með því að nota hagnýt dæmi sem hægt er að nota frá degi til dags.

Svo skulum við byrja.

Efnisyfirlit

Cp Command Syntax

Setningafræði cp skipunarinnar er eins og aðrar Linux skipanir. Á háu stigi er henni skipt í tvo hluta - valkosti og rök:

$ cp [OPTIONS] <SOURCE> <DEST>
$ cp [OPTIONS] <SOURCE-1> <SOURCE-2> ... <DIRECTORY>

Í setningafræðinni hér að ofan, tákna hornklofa ([]) valfrjálsu rökin en hornklofar (<>) tákna lögboðin rök.

1. Hvernig á að afrita skrá í Linux

Ein af grunnnotkun cp skipunarinnar er að afrita skrá í núverandi möppu. Oftast framkvæma notendur þessa aðgerð til að taka öryggisafrit af mikilvægu stillingunum.

Til dæmis búum við oft til öryggisafrit af /etc/ssh/sshd_config skránni áður en SSH stillingarnar eru uppfærðar.

Til að skilja notkunina skulum við búa til einfalda skrá:

$ touch file-1.txt

Næst skaltu búa til afrit af skránni með eftirfarandi skipun:

$ cp file-1.txt file-2.txt

2. Sýna framvindu afritunarskipunar

Í fyrra dæminu notuðum við ls skipunina til að staðfesta hvort skráafritunaraðgerðin heppnaðist eða ekki. Hins vegar er ekki skynsamlegt að nota eina skipun í viðbót bara til að staðfesta niðurstöðu fyrri skipana.

Í slíkum tilfellum getum við virkjað orðræðu stillinguna með því að nota -v valmöguleikann, sem veitir greiningu fyrir hverja unnin skrá.

Gerum afrit af skránni file-1.txt með eftirfarandi skipun:

$ cp -v file-1.txt file-3.txt

Í úttakinu hér að ofan táknar örin skrána sem verið er að afrita. Vinstri hliðarröksemdin er frumskráin en hægri hliðarröksemdin er áfangaskráin.

3. Hvernig á að afrita margar skrár í möppuna

Hingað til unnum við aðeins með eina skrá og núverandi vinnuskrá. Hins vegar, í raunverulegu framleiðsluumhverfi, verðum við að vinna með mikinn fjölda skráa. Eitt af algengustu tilfellunum í slíku umhverfi er að afrita margar skrár í eina möppu.

Augljóslega getum við framkvæmt cp skipunina mörgum sinnum til að ná því, en það mun ekki vera áhrifaríkasta leiðin. Til að framkvæma slíka aðgerð á áhrifaríkan hátt getum við notað aðra setningafræði cp skipunarinnar.

Svo, fyrst, búðu til nýja möppu með nafninu dir-1:

$ mkdir dir-1

Nú skulum við afrita allar þrjár skrárnar í dir-1 möppuna með því að nota eina skipunina:

$ cp -v file-1.txt file-2.txt file-3.txt dir-1

Ofangreind framleiðsla sýnir að allar skrár hafa verið afritaðar í dir-1 möppuna. Einnig er mikilvægt að hafa í huga að til að nota þessa aðra setningafræði verður skráin að vera til staðar þegar og hún verður að vera síðasta rök skipunarinnar.

4. Hvernig á að forðast að skrifa yfir skrána

Sjálfgefið er að cp skipunin kemur í stað áfangaskrár, sem þýðir að hún mun skrifa yfir skrána ef hún er til á áfangastaðnum með sama nafni. Hins vegar getum við slökkt á þessari sjálfgefna hegðun með því að nota -n valkostinn.

Til að skilja þetta skulum við reyna að skrifa yfir núverandi skrá:

$ cp -n -v file-1.txt file-2.txt

Í þessu dæmi höfum við notað -v valkostinn til að sýna fram á að skrá-2.txt skránni hefur ekki verið skrifað yfir.

5. Hvernig á að skrifa yfir skrána með staðfestingu

Í fyrra dæminu sáum við hvernig á að forðast að skrifa yfir áfangaskrána. Hins vegar viljum við stundum skrifa yfir áfangastað skráarinnar á öruggari hátt.

Í slíkum tilfellum getum við notað -i valkostinn í skipuninni til að gera afritunaraðgerðina gagnvirka. Þessi valkostur sýnir viðvörunarskilaboðin og bíður eftir staðfestingu notandans áður en skránni er skrifað yfir.

Til að sýna þetta skulum við reyna að skrifa yfir núverandi skrá:

$ cp -i file-1.txt file-2.txt

cp: overwrite 'file-2.txt'?

Eins og við sjáum bíður skipunin eftir staðfestingu. Rétt eins og aðrar Linux skipanir getum við notað y til að halda áfram eða n til að hætta við aðgerðina.

Þessi sjálfgefna ógagnvirka hegðun cp skipunarinnar er ekki mjög örugg. Það eru líkur á að notandinn gæti skrifað yfir mikilvæga stillingu fyrir mistök. Þess vegna framfylgja sumar Linux dreifingum gagnvirku hegðuninni sjálfgefið með því að nota alias skipunina:

$ alias cp='cp -i'

6. Skrifaðu aðeins yfir skrá ef heimildin er nýrri

Í fyrra dæminu sáum við hvernig á að nota gagnvirka stillingu. Hins vegar, stundum gæti notandi skrifað yfir nýrri skrána óvart.

Til að forðast slík villuhættuleg tilvik getum við notað -u valmöguleikann, sem reynir aðeins að afrita ef uppspretta er nýrri en áfangastaðurinn eða ef skráin er ekki til staðar á áfangastaðnum.

Uppfærðu fyrst tímastimpil frumskrárinnar:

$ touch -t 10101010 file-1.txt
$ ls -l file-1.txt

Í dæminu hér að ofan höfum við notað -t valkostinn í snertiskipuninni til að stilla tímastimpil skráarinnar á 10-okt-2010.

Næst skulum við uppfæra tímastimpil áfangaskrárinnar í núverandi tíma:

$ touch file-2.txt

Nú skulum við reyna að framkvæma afritunaraðgerð með -u valkostinum:

$ cp -u -v file-1.txt file-2.txt

Hér getum við séð að ekki hefur verið reynt að afrita vegna þess að áfangaskráin er nýrri en uppspretta.

Að lokum skulum við skipta um uppruna- og áfangarök og framkvæma afritunaraðgerðina:

$ cp -u -v file-2.txt file-1.txt

Í úttakinu hér að ofan getum við séð að afritunaraðgerðin heppnast vegna þess að frumskráin er nýrri en áfangastaðurinn.

7. Hvernig á að taka öryggisafrit af skrá áður en þú skrifar yfir

Við getum gefið cp skipuninni fyrirmæli um að taka öryggisafrit af áfangaskránni áður en yfir er skrifað. Til að ná þessu getum við notað --afrit valmöguleikann, sem framkvæmir sjálfvirkt afrit.

$ cp --backup=numbered -v file-1.txt file-2.txt

Í þessu dæmi höfum við notað númeruð öryggisafritunarstefnu. Þessi regla notar stigvaxandi tölur í nöfnum öryggisafrita.

Til að skilja þetta skulum við framkvæma sömu skipunina mörgum sinnum og fylgjast með úttakinu:

$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt
$ cp --backup=numbered -v file-1.txt file-2.txt

8. Hvernig á að þvinga afrit til að skrifa yfir skrá

Í nokkrum dæmum á undan sáum við hvernig á að skrifa yfir skrána á öruggari hátt. Hins vegar, í sumum sjaldgæfum tilvikum, er krafan um að skrifa yfir skrána. Hins vegar er engin trygging fyrir því að aðgerðin heppnist í hvert skipti.

Til dæmis mun afritunaraðgerðin mistakast ef áfangaskráin hefur ekki skrifheimildir. Við skulum útskýra þetta með dæmi.

Fyrst skaltu breyta heimildum áfangaskrárinnar:

$ chmod 444 file-2.txt
$ ls -l file-2.txt

Nú skulum við reyna að skrifa yfir file-2.txt skrána:

$ cp file-1.txt file-2.txt

Í úttakinu hér að ofan getum við séð að skipunin hefur mistekist með villunni um leyfi hafnað.

Til að sigrast á þessari takmörkun getum við notað -f valkostinn, sem eyðir áfangaskrám og reynir að afrita ef ekki er hægt að opna áfangaskrána.

Nú skulum við nota -f valkostinn til að skrifa yfir skrána af krafti:

$ cp -f -v file-1.txt file-2.txt

9. Hvernig á að fjarlægja áfangaskrána áður en þú afritar

Í fyrra dæmi sáum við hvernig á að fjarlægja áfangaskrána ef villa er þegar hún er notuð. Hins vegar er krafan stundum að fjarlægja áfangaskrána fyrst og framkvæma síðan afritunaraðgerðina.

Til að uppfylla slíka kröfu getum við notað --remove-destination valkostinn.

$ cp --remove-destination -v file-1.txt file-2.txt

Í úttakinu hér að ofan getum við séð að cp skipunin fjarlægir fyrst áfangaskrána og framkvæmir síðan afritunaraðgerðina.

10. Hvernig á að búa til Hard Link skrá í stað þess að afrita

Við getum búið til harðan hlekk í stað þess að búa til nýtt afrit af frumskránni. Þessi valkostur gegnir mikilvægu hlutverki þegar það er skortur á plássi.

Svo, við skulum nota -l valkostinn til að búa til harðan hlekk:

$ cp -l -v file-1.txt file-4.txt

Nú skulum við athuga inode númer beggja skráa til að staðfesta hörðu hlekkina:

$ ls -i1 file-1.txt file-4.txt

Í úttakinu hér að ofan, tákna tölurnar í fyrsta dálknum inode tölurnar.

11. Hvernig á að búa til mjúkan hlekkjaskrá í stað þess að afrita

Á svipaðan hátt getum við búið til mjúkan hlekk í stað þess að búa til nýtt afrit með -s valkostinum eins og sýnt er hér að neðan:

$ cp -s -v file-1.txt file-5.txt

Nú skulum við ganga úr skugga um að táknræni hlekkurinn hafi verið búinn til á réttan hátt:

$ ls -l file-5.txt

Í úttakinu hér að ofan tákna síðustu dálkarnir táknræna hlekkjatengslin.

12. Hvernig á að varðveita skráareiginleikana meðan á afritun stendur

Það eru ýmsir eiginleikar tengdir skránni, svo sem aðgangstími hennar, breytingatími, heimildir osfrv. Sjálfgefið er að þessir eiginleikar eru ekki varðveittir á meðan skráin er afrituð. Til að hnekkja þessari sjálfgefna hegðun getum við notað -p valkostinn.

Til að skilja þetta skaltu fyrst uppfæra tímastimpil skráarinnar-1.txt:

$ touch -t 10101010 file-1.txt

Nú skulum við búa til afrit af þessari skrá með því að varðveita alla eiginleika hennar:

$ cp -p -v file-1.txt file-6.txt

Að lokum skaltu staðfesta tímastimpil skrárinnar-6.txt:

$ ls -l file-6.txt

13. Hvernig á að framkvæma afritunaraðgerð endurkvæmt

Hingað til sáum við hvernig á að afrita eina skrá. Hins vegar þurfum við oft að afrita allar skrár og undirmöppur tiltekinnar möppu.

Í slíkum tilfellum getum við notað endurkvæma stillinguna annað hvort með -r eða -R valkostinum.

Svo, við skulum búa til möppu og bæta við nokkrum skrám og undirmöppum undir hana:

$ mkdir -p dir-1/dir-2
$ touch dir-1/file-1.txt dir-1/dir-2/file-2.txt

Næst skaltu ganga úr skugga um að möppuuppbyggingin hafi verið búin til á réttan hátt:

$ tree dir-1

Nú skulum við afrita möppuna dir-1 endurkvæmt með því að nota eftirfarandi skipun:

$ cp -r -v dir-1 dir-3

Að lokum skaltu ganga úr skugga um að allar skrár og undirskrár hafi verið afritaðar með góðum árangri:

$ tree dir-3

14. Hvernig á að afrita margar möppur

Líkt og skrár getum við afritað margar endurkvæmar möppur með einni skipun. Hins vegar, til að ná þessu, verður áfangaskráin að vera þegar til staðar og hún verður að vera síðasta rökin í skipuninni. Við skulum skilja þetta með dæmi.

Fyrst skaltu búa til möppu nýja möppu:

$ mkdir dir-4

Nú skulum við afrita dir-1 og dir-3 möppurnar í dir-4 möppuna með því að nota skipunina hér að neðan:

$ cp -r -v dir-1 dir-3 dir-4

Á svipaðan hátt getum við notað -t valkostinn í skipuninni til að ná sömu niðurstöðu. Þessi valkostur gerir okkur kleift að tilgreina áfangaskrá. Svo við getum líka notað það sem fyrstu rök:

$ cp -t dir-4 -r -v dir-1 dir-3

Í þessari grein ræddum við hvernig á að afrita skrár og möppur með því að nota cp skipunina. Byrjendur geta vísað til þessara dæma í daglegu lífi á meðan þeir vinna með Linux kerfi.

Þér gæti einnig líkað:

  • Framfarir – Sýna hlutfall afritaðra gagna fyrir (cp, mv, dd, tar) skipanir
  • Fylgstu með framvindu (afrita/afrita/þjappa) gagna með „pv“ skipun
  • Ítarleg afritunarskipun – Sýnir framvindustiku meðan stórar skrár/möppur eru afritaðar í Linux

Veistu um annað besta dæmi um cp skipunina í Linux? Láttu okkur vita af skoðunum þínum í athugasemdunum hér að neðan.