Cp buýrugyny Linux-da nädip netijeli ulanmaly [14 Mysal]


Gysgaça: Bu aňsat gollanmada, cp buýrugynyň käbir amaly mysallaryny ara alyp maslahatlaşarys. Bu gollanmany ýerine ýetirensoň, ulanyjylar buýruk setiriniň interfeýsini ulanyp Linux-da faýllary we kataloglary aňsatlyk bilen göçürip bilerler.

Linux ulanyjylary hökmünde faýllary we kataloglary göçürmek bilen aragatnaşyk saklaýarys. Elbetde, göçürmek amalyny ýerine ýetirmek üçin grafiki faýl dolandyryjysyny ulanyp bileris. Şeýle-de bolsa, Linux ulanyjylarynyň köpüsi ýönekeýligi we baý işleýşi sebäpli cp buýrugyny ulanmagy makul bilýärler.

Bu başlangyç üçin amatly gollanmada, cp buýrugy barada öwreneris. Adyndan görnüşi ýaly, cp buýrugy belli bir ýolda faýllary we kataloglary göçürmek üçin ulanylýar.

Bu gollanmanyň dowamynda, gündelik ulanyp boljak amaly mysallary ulanyp, cp buýrugynyň ulanylyşyna düşüneris.

Geliň, başlalyň.

Mazmuny

Cp buýruk sintaksis

Cp buýrugynyň sintaksisi beýleki Linux buýruklary bilen birmeňzeşdir. Levelokary derejede iki bölege bölünýär - wariantlar we argumentler:

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

Aboveokardaky sintaksisde kwadrat ýaýlar ([]) goşmaça argumentleri görkezýär, burçly ýaýlar (<>) hökmany argumentleri görkezýär.

1. Linux-da bir faýly nädip göçürmeli

Cp buýrugynyň esasy ulanylyşynyň biri faýly häzirki kataloga göçürmekdir. Ulanyjylar köplenç möhüm konfigurasiýanyň ätiýaçlyk nusgasyny almak üçin bu amaly ýerine ýetirýärler.

Mysal üçin, SSH konfigurasiýasyny täzelemezden ozal köplenç/etc/ssh/sshd_config faýlynyň ätiýaçlyk nusgasyny döredýäris.

Ulanylyşyna düşünmek üçin ýönekeý bir faýl döredeliň:

$ touch file-1.txt

Ondan soň aşakdaky buýrugy ulanyp faýlyň göçürmesini dörediň:

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

2. Göçürmek buýrugynyň ösüşini görkeziň

Öňki mysalda, faýl göçürmek amalynyň üstünlikli ýa-da ýokdugyny barlamak üçin ls buýrugyny ulanýardyk. Şeýle-de bolsa, öňki buýruklaryň netijesini barlamak üçin ýene bir buýrugy ulanmagyň manysy ýok.

Şeýle ýagdaýlarda, her gaýtadan işlenen faýl üçin diagnostika üpjün edýän -v opsiýasyny ulanyp, söz re modeimini açyp bileris.

Aşakdaky buýrugy ulanyp, 1.txt faýlynyň göçürmesini edeliň:

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

Aboveokardaky çykyşda, ok göçürilýän faýly aňladýar. Çep tarapdaky argument çeşme faýly, sag tarapdaky argument bolsa niýetlenen faýl.

3. Birnäçe faýly kataloga nädip göçürmeli

Şu wagta çenli ýekeje faýl we diňe häzirki iş katalogy bilen işledik. Şeýle-de bolsa, hakyky önümçilik gurşawynda köp sanly faýl bilen işlemeli. Şeýle şertlerde giňden ulanylýan ýagdaýlaryň biri, birnäçe faýly bir kataloga göçürmekdir.

Elbetde, oňa ýetmek üçin cp buýrugyny birnäçe gezek ýerine ýetirip bileris, ýöne bu iň täsirli usul bolmaz. Şeýle amaly netijeli ýerine ýetirmek üçin cp buýrugynyň alternatiw sintaksisini ulanyp bileris.

Şeýlelik bilen, ilki bilen dir-1 ady bilen täze katalog dörediň:

$ mkdir dir-1

Indi, üç faýlyň hemmesini ýekeje buýrugy ulanyp dir-1 katalogyna göçüreliň:

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

Aboveokardaky çykyş, ähli faýllaryň dir-1 katalogyna göçürilendigini görkezýär. Mundan başga-da, bu alternatiw sintaksisden peýdalanmak üçin katalogyň eýýäm bolmalydygyny we buýrugyň soňky argumenti bolmalydygyny bellemelidiris.

4. Faýlyň gaýtadan ýazylmagyndan nädip saklanmaly

Gaýybana tertipde, cp buýrugy niýetlenen faýlyň ýerini alýar, ýagny barjak ýerinde şol bir at bilen bar bolsa faýly gaýtadan ýazar. Şeýle-de bolsa, -n opsiýasyny ulanyp, bu adaty hereketi öçürip bileris.

Muňa düşünmek üçin, bar bolan faýlyň üstünden ýazmaga synanyşalyň:

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

Bu mysalda, 2.txt faýlynyň gaýtadan ýazylmandygyny görkezmek üçin -v opsiýasyny ulandyk.

5. Tassyklama bilen faýly nädip ýazmaly

Öňki mysalda, niýetlenen faýlyň täzeden ýazylmagynyň öňüni aldyk. Şeýle-de bolsa, käwagt faýl barmaly ýerini has ygtybarly ýazmak isleýäris.

Şeýle ýagdaýlarda, göçürme amalyny interaktiw etmek üçin buýrugyň -i opsiýasyny ulanyp bileris. Bu opsiýa duýduryş habaryny görkezýär we faýly gaýtadan ýazmazdan ozal ulanyjynyň tassyklamasyna garaşýar.

Muny düşündirmek üçin, bar bolan faýlyň üstünden ýazmaga synanyşalyň:

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

cp: overwrite 'file-2.txt'?

Görşümiz ýaly, buýruk tassyklamaga garaşýar. Beýleki Linux buýruklary ýaly, dowam etmek üçin y ýa-da amaly ýatyrmak üçin n ulanyp bileris.

Cp buýrugynyň bu deslapky interaktiw däl hereketi gaty howpsuz däl. Ulanyjynyň möhüm konfigurasiýany ýalňyşlyk bilen ýazyp bilmek ähtimallygy bar. Şonuň üçin Linux paýlaýjylarynyň käbiri lakam buýrugyny ulanyp interaktiw özüni alyp barşyny ýerine ýetirýär:

$ alias cp='cp -i'

6. Faýly diňe çeşme has täze bolsa ýazyň

Öňki mysalda interaktiw re modeimi nähili ulanmalydygyny gördük. Şeýle-de bolsa, käwagt ulanyjy täze faýly bilgeşleýin ýazyp biler.

Erroralňyşlyk bilen ýüze çykýan şeýle ýagdaýlardan gaça durmak üçin, diňe çeşme barjak ýerinden täze bolsa ýa-da faýl barmaly ýerinde ýok bolsa, göçürmäge synanyşýan -u opsiýasyny ulanyp bileris.

Ilki bilen çeşme faýlyň möhletini täzeläň:

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

Aboveokardaky mysalda, faýlyň möhletini 10-oktýabr-2010-a bellemek üçin sensor buýrugynyň -t opsiýasyny ulandyk.

Indiki, barmaly faýlyň wagt belligini häzirki wagta täzeläliň:

$ touch file-2.txt

Indi, -u opsiýasyny ulanyp göçürme amalyny ýerine ýetirmäge synanyşalyň:

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

Bu ýerde, göçürme amalynyň synanyşyk edilmändigini görüp bileris, sebäbi niýetlenen faýl çeşmeden has täze.

Ahyrynda, çeşmäni we barjak argumentleri çalyşalyň we göçürmek amalyny ýerine ýetireliň:

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

Aboveokardaky çykyşda, göçürme amalynyň üstünlikli bolandygyny synlap bileris, sebäbi çeşme faýly barmaly ýerinden has täze.

7. Faýly gaýtadan ýazmazdan ozal nädip ätiýaçlamaly

Cp buýrugyny, ýazylmazdan ozal barjak faýlyňyzyň ätiýaçlyk nusgasyny almagy tabşyryp bileris. Muňa ýetmek üçin awtomatiki ätiýaçlyk nusgalaryny ýerine ýetirýän --backup opsiýasyny ulanyp bileris.

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

Bu mysalda sanly ätiýaçlyk syýasatyny ulandyk. Bu syýasat ätiýaçlyk faýl atlarynda artýan sanlary ulanýar.

Muňa düşünmek üçin geliň, şol bir buýrugy birnäçe gezek ýerine ýetireliň we çykyşyna syn edeliň:

$ 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. Faýly gaýtadan ýazmak üçin göçürmäni nädip mejbur etmeli

Öňki birnäçe mysalda faýly nädip has ygtybarly ýazmalydygyny gördük. Şeýle-de bolsa, käbir seýrek ýagdaýlarda faýlyň üstünden ýazmak talap edilýär. Şeýle-de bolsa, amalyň her gezek üstünlikli boljakdygyna kepillik ýok.

Mysal üçin, niýetlenen faýlyň ýazmak rugsady ýok bolsa, göçürmek amaly şowsuz bolar. Geliň muny mysal bilen görkezeliň.

Ilki bilen, barmaly faýlyň rugsatlaryny üýtgediň:

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

Indi, 2.txt faýlyny gaýtadan ýazmaga synanyşalyň:

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

Aboveokardaky çykyşda, buýrugyň ret edilen säwligi bilen buýrugyň şowsuz bolandygyny görüp bileris.

Bu çäklendirmäni ýeňip geçmek üçin niýetlenen faýllary pozýan we niýetlenen faýl açylmasa göçürme amalyny synap görýän -f opsiýasyny ulanyp bileris.

Indi, faýly güýçli ýazmak üçin -f opsiýasyny ulanalyň:

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

9. Göçürmezden ozal niýetlenen faýly nädip aýyrmaly

Öňki mysalda, işleýän wagtyňyz ýalňyşlyk bar bolsa, barmaly faýly nädip aýyrmalydygyny gördük. Şeýle-de bolsa, käwagt talap ilki bilen barmaly faýly aýyrmak we soňra göçürmek amalyny ýerine ýetirmekdir.

Şeýle talaby ýerine ýetirmek üçin --remove-destination opsiýasyny ulanyp bileris.

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

Aboveokardaky çykyşda, cp buýrugynyň ilki maksat faýlyny aýyrýandygyny we soňra göçürmek amalyny ýerine ýetirýändigini görüp bileris.

10. Göçürmegiň ýerine gaty baglanyşyk faýlyny nädip döretmeli

Çeşme faýlynyň täze göçürmesini döretmegiň ýerine gaty baglanyşyk döredip bileris. Disk ýeriniň ýetmezçiligi ýüze çykanda bu opsiýa möhüm rol oýnaýar.

Şeýlelik bilen, gaty baglanyşyk döretmek üçin -l opsiýasyny ulanalyň:

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

Indi, gaty baglanyşyklary barlamak üçin iki faýlyň inode belgilerini barlap göreliň:

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

Aboveokardaky çykyşda, birinji sütündäki sanlar inode sanlaryny görkezýär.

11. Göçürmegiň ýerine nädip ýumşak baglanyşyk faýly döretmeli

Edil şonuň ýaly, aşakda görkezilişi ýaly -s opsiýasyny ulanyp täze göçürme döretmegiň ýerine ýumşak baglanyşyk döredip bileris:

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

Indi, simwoliki baglanyşygyň dogry döredilendigini barlalyň:

$ ls -l file-5.txt

Aboveokardaky çykyşda soňky sütünler simwoliki baglanyşyk gatnaşyklaryny görkezýär.

12. Göçürilende faýl aýratynlyklaryny nädip gorap saklamaly

Faýl bilen baglanyşykly dürli atributlar bar, meselem, giriş wagty, üýtgetme wagty, rugsatlar we ş.m. Düzgüne görä, faýl göçürilende bu atributlar saklanmaýar. Bu adaty hereketi ýok etmek üçin -p opsiýasyny ulanyp bileris.

Muňa düşünmek üçin ilki bilen 1.txt faýlyň möhletini täzeläň:

$ touch -t 10101010 file-1.txt

Indi, ähli häsiýetlerini gorap, bu faýlyň göçürmesini döredeliň:

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

Ahyrynda, 6.txt faýlyň möhletini barlaň:

$ ls -l file-6.txt

13. Göçürmek amalyny nädip ýerine ýetirmeli

Şu wagta çenli ýekeje faýly nädip göçürmelidigini gördük. Şeýle-de bolsa, köplenç belli bir katalogyň ähli faýllaryny we kiçi kataloglaryny göçürmeli bolýarys.

Şeýle ýagdaýlarda, -r ýa-da -R opsiýasyny ulanyp, gaýtalanýan re modeimi ulanyp bileris.

Şeýlelik bilen, bir katalog döredeliň we onuň aşagyna birnäçe faýl we kiçi katalog goşalyň:

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

Ondan soň, katalog gurluşynyň dogry döredilendigini barlaň:

$ tree dir-1

Indi, aşakdaky buýrugy ulanyp, dir-1 katalogyny gaýtalap göreliň:

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

Netijede, ähli faýllaryň we kiçi kataloglaryň üstünlikli göçürilendigini barlaň:

$ tree dir-3

14. Birnäçe katalogy nädip göçürmeli

Faýllara meňzeşlikde, bir buýruk ulanyp, gaýtalanýan birnäçe katalogy göçürip bileris. Şeýle-de bolsa, munuň üçin niýetlenen katalog eýýäm bar bolmaly we buýrukdaky iň soňky argument bolmaly. Geliň, muňa mysal bilen düşüneliň.

Ilki bilen, täze katalog dörediň:

$ mkdir dir-4

Indi, aşakdaky buýrugy ulanyp, dir-1 we dir-3 kataloglaryny dir-4 katalogyna göçüreliň:

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

Edil şonuň ýaly netijäni gazanmak üçin buýrugyň -t opsiýasyny ulanyp bileris. Bu opsiýa, barmaly katalogy kesgitlemäge mümkinçilik berýär. Şonuň üçin ony ilkinji argument hökmünde hem ulanyp bileris:

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

Bu makalada cp buýrugyny ulanyp faýllary we kataloglary nädip göçürmelidigini ara alyp maslahatlaşdyk. Täze başlanlar, Linux ulgamlary bilen işleýän wagtyňyz gündelik durmuşda bu mysallara ýüz tutup bilerler.

Şeýle hem halap bilersiňiz:

  • Ösüş - (cp, mv, dd, tar) buýruklary üçin göçürilen maglumatlaryň göterimini görkeziň
  • pv buýrugyny ulanyp, maglumatlaryň göçürilişine gözegçilik etmek (göçürmek/ätiýaçlyk/gysmak)
  • Advanced Copy Command - Linux-da uly faýllary/bukjalary göçüreniňizde öňegidişlik setirini görkezýär

Linux-da cp buýrugynyň başga bir gowy mysalyny bilýärsiňizmi? Aşakdaky teswirlerde pikirleriňizi bize habar beriň.