Nola erabili cp komandoa modu eraginkorrean Linux-en [14 Adibideak]
Laburra: jarraitzeko erraza den gida honetan, cp komandoaren adibide praktiko batzuk eztabaidatuko ditugu. Gida hau jarraitu ondoren, erabiltzaileek fitxategiak eta direktorioak erraz kopiatu ahal izango dituzte Linuxen komando lerroko interfazea erabiliz.
Linux erabiltzaile gisa, kopiatzen diren fitxategiekin eta direktorioekin elkarreragiten dugu. Zalantzarik gabe, fitxategi-kudeatzaile grafiko bat erabil dezakegu kopia eragiketa egiteko. Hala ere, Linux erabiltzaile gehienek nahiago dute cp komandoa erabiltzea bere sinpletasuna eta funtzionaltasun aberatsa direla eta.
Hasiberrientzako gida honetan, cp komandoari buruz ikasiko dugu. Izenak dioen bezala, cp komandoa fitxategiak eta direktorioak bide jakin batean kopiatzeko erabiltzen da.
Gida honetan zehar, cp komandoaren erabilera ulertuko dugu egunerokoan erabil daitezkeen adibide praktikoak erabiliz.
Beraz, has gaitezen.
Cp komandoaren sintaxia
cp komandoaren sintaxia Linux beste komando batzuen berdina da. Maila altuan, bi zatitan banatzen da: aukerak eta argudioak:
$ cp [OPTIONS] <SOURCE> <DEST>
$ cp [OPTIONS] <SOURCE-1> <SOURCE-2> ... <DIRECTORY>
Goiko sintaxian, ([]) kortxeteek aukerako argumentuak adierazten dituzte, eta angeluzuzenak (<>) derrigorrezko argumentuak adierazten dituzte.
1. Nola kopiatu fitxategi bat Linux-en
cp komandoaren oinarrizko erabilpenetako bat fitxategi bat uneko direktorio batean kopiatzea da. Gehienetan erabiltzaileek eragiketa hau egiten dute konfigurazio garrantzitsuaren babeskopia egiteko.
Adibidez, askotan /etc/ssh/sshd_config fitxategiaren babeskopia bat sortzen dugu SSH konfigurazioa eguneratu aurretik.
Erabilera ulertzeko, sor dezagun fitxategi sinple bat:
$ touch file-1.txt
Ondoren, sortu fitxategiaren kopia bat komando hau erabiliz:
$ cp file-1.txt file-2.txt

2. Erakutsi Kopiaren komandoaren aurrerapena
Aurreko adibidean, ls komandoa erabili dugu fitxategia kopiatzeko eragiketak arrakasta izan duen edo ez egiaztatzeko. Hala ere, ez du zentzurik komando bat gehiago erabiltzeak aurreko komandoen emaitza egiaztatzeko soilik.
Horrelakoetan, prozesatutako fitxategi bakoitzaren diagnostikoak ematen dituen -v aukeraren bidez modu zehatza gaitu dezakegu.
Egin dezagun fitxategi-1.txt fitxategiaren kopia bat komando hau erabiliz:
$ cp -v file-1.txt file-3.txt

Goiko irteeran, geziak kopiatzen ari den fitxategia adierazten du. Ezkerreko argumentua iturburu-fitxategia da, eta eskuineko argumentua helmuga-fitxategia da.
3. Nola kopiatu hainbat fitxategi direktoriora
Orain arte fitxategi bakarrarekin eta uneko lan-direktorioarekin bakarrik lan egin genuen. Hala ere, benetako ekoizpen-ingurunean, fitxategi kopuru handiarekin lan egin behar dugu. Horrelako inguruneetan ohiko erabilera kasuetako bat fitxategi bat baino gehiago direktorio bakarrean kopiatzea da.
Jakina, cp komandoa hainbat aldiz exekutatu dezakegu hori lortzeko, baina hori ez da modu eraginkorrena izango. Eragiketa hori modu eraginkorrean egiteko, cp komandoaren sintaxi alternatibo bat erabil dezakegu.
Beraz, lehenik eta behin, sortu direktorio berri bat dir-1 izenarekin:
$ mkdir dir-1
Orain, kopia ditzagun hiru fitxategiak dir-1 direktoriora komando bakarra erabiliz:
$ cp -v file-1.txt file-2.txt file-3.txt dir-1

Goiko irteerak erakusten du fitxategi guztiak dir-1 direktoriora kopiatu direla. Gainera, kontuan izan behar da sintaxi alternatibo hau erabiltzeko direktorioa dagoeneko presente egon behar dela eta komandoaren azken argumentua izan behar duela.
4. Nola saihestu Fitxategia gainidaztea
Lehenespenez, cp komandoak helmugako fitxategia ordezkatzen du, hau da, fitxategia gainidatziko du helmugan izen bereko baldin badago. Hala ere, portaera lehenetsi hau desgaitu dezakegu -n aukera erabiliz.
Hau ulertzeko, saia gaitezen lehendik dagoen fitxategia gainidazten:
$ cp -n -v file-1.txt file-2.txt
Adibide honetan, -v aukera erabili dugu fitxategi-2.txt fitxategia gainidatzi ez dela adierazteko.
5. Nola gainidatzi fitxategia berrespenarekin
Aurreko adibidean, helmugako fitxategia gainidaztea nola saihestu ikusi genuen. Hala ere, batzuetan fitxategiaren helmuga modu seguruago batean gainidatzi nahi dugu.
Halakoetan, komandoaren -i aukera erabil dezakegu kopia eragiketa interaktiboa izan dadin. Aukera honek abisu-mezua erakusten du eta fitxategia gainidatzi aurretik erabiltzailearen baieztapenaren zain egongo da.
Hau ilustratzeko, saia gaitezen lehendik dagoen fitxategia gainidazten:
$ cp -i file-1.txt file-2.txt
cp: overwrite 'file-2.txt'?
Ikus dezakegunez, komandoa baieztapenaren zain dago. Linux beste komando batzuk bezala, y erabil dezakegu jarraitzeko edo n eragiketa bertan behera uzteko.
cp komandoaren portaera ez-interaktibo lehenetsi hau ez da oso segurua. Baliteke erabiltzaileak akatsez konfigurazio garrantzitsu bat gainidaztea. Horregatik, Linux banaketa batzuek portaera interaktiboa ezartzen dute lehenespenez alias komandoa erabiliz:
$ alias cp='cp -i'
6. Gainidatzi fitxategia Iturria Berriagoa bada bakarrik
Aurreko adibidean, modu interaktiboa nola erabili ikusi genuen. Hala ere, batzuetan, erabiltzaile batek fitxategi berria gainidatzi dezake nahi gabe.
Akatsak izateko joera duten kasuak saihesteko, -u aukera erabil dezakegu, hau da, kopia-eragiketa saiatzen da iturria helmuga baino berriagoa bada edo fitxategia helmugan ez badago.
Lehenik eta behin, eguneratu iturburu-fitxategiaren denbora-zigilua:
$ touch -t 10101010 file-1.txt
$ ls -l file-1.txt
Goiko adibidean, ukipen komandoaren -t aukera erabili dugu fitxategiaren denbora-zigilua 2010-10-10ean ezartzeko.
Ondoren, egunera dezagun helmugako fitxategiaren denbora-zigilua uneko ordura:
$ touch file-2.txt
Orain, saia gaitezen kopia eragiketa egiten -u aukera erabiliz:
$ cp -u -v file-1.txt file-2.txt
Hemen, kopia-eragiketa ez dela saiakera ikus dezakegu helmuga fitxategia iturburua baino berriagoa delako.
Azkenik, trukatu ditzagun iturburu eta helmuga argumentuak eta egin ditzagun kopia eragiketa:
$ cp -u -v file-2.txt file-1.txt
Goiko irteeran, kopia eragiketa arrakastatsua dela ikus dezakegu iturburu-fitxategia helmuga baino berriagoa delako.

7. Nola egin fitxategiaren babeskopia gainidatzi aurretik
cp komandoari helmugako fitxategiaren babeskopia egiteko agindu diezaiokegu gainidatzi aurretik. Hori lortzeko --backup aukera erabil dezakegu, babeskopia automatikoak egiten dituena.
$ cp --backup=numbered -v file-1.txt file-2.txt
Adibide honetan, zenbakizko babeskopia-politika erabili dugu. Gidalerro honek zenbaki gehigarriak erabiltzen ditu babeskopien fitxategien izenetan.
Hau ulertzeko, exekutatu dezagun komando bera hainbat aldiz eta beha dezagun irteera:
$ 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. Nola behartu kopia fitxategia gainidazteko
Aurreko adibideetan, fitxategia modu seguruagoan nola gainidatzi ikusi genuen. Hala ere, kasu bakan batzuetan, baldintza fitxategia gainidaztea da. Hala ere, ez dago bermerik eragiketak aldi bakoitzean arrakasta izango duenik.
Adibidez, kopia eragiketak huts egingo du helburuko fitxategiak idazteko baimenik ez badu. Azal dezagun hau adibide batekin.
Lehenik eta behin, aldatu helburuko fitxategiaren baimenak:
$ chmod 444 file-2.txt
$ ls -l file-2.txt
Orain, saia gaitezen file-2.txt fitxategia gainidazten:
$ cp file-1.txt file-2.txt
Goiko irteeran, komandoak huts egin duela ikus dezakegu baimena ukatutako errorearekin.
Muga hori gainditzeko, -f aukera erabil dezakegu, helmuga fitxategiak ezabatzen dituena eta helmuga fitxategia ireki ezin bada kopia eragiketa egiten saiatzen da.
Orain, erabil dezagun -f aukera fitxategia indarrez gainidazteko:
$ cp -f -v file-1.txt file-2.txt

9. Nola kendu Helmuga fitxategia kopiatu aurretik
Aurreko adibidean, helmuga-fitxategia nola kendu ikusi genuen funtzionatzerakoan erroreren bat badago. Hala ere, batzuetan helmuga fitxategia lehenik kentzea eta gero kopia eragiketa egitea da baldintza.
Baldintza hori betetzeko, --remove-destination aukera erabil dezakegu.
$ cp --remove-destination -v file-1.txt file-2.txt

Goiko irteeran, cp komandoak lehenik helmuga fitxategia kentzen duela eta gero kopia eragiketa egiten duela ikus dezakegu.
10. Nola sortu esteka gogorreko fitxategi bat kopiatu beharrean
Esteka gogor bat sor dezakegu iturburu-fitxategiaren kopia berri bat sortu beharrean. Aukera honek paper garrantzitsua jokatzen du diskoko leku eskasia dagoenean.
Beraz, erabil dezagun -l aukera esteka gogor bat sortzeko:
$ cp -l -v file-1.txt file-4.txt
Orain, egiaztatu ditzagun bi fitxategien inodo-zenbakiak esteka gogorrak egiaztatzeko:
$ ls -i1 file-1.txt file-4.txt

Goiko irteeran, lehen zutabeko zenbakiek inodoaren zenbakiak adierazten dituzte.
11. Nola sortu Soft Link fitxategi bat kopiatu beharrean
Era berean, esteka leun bat sor dezakegu kopia berri bat sortu beharrean -s aukera erabiliz behean erakusten den moduan:
$ cp -s -v file-1.txt file-5.txt
Orain, egiazta dezagun lotura sinbolikoa behar bezala sortu dela:
$ ls -l file-5.txt

Goiko irteeran, azken zutabeek lotura sinbolikoaren erlazioa adierazten dute.
12. Nola gorde fitxategi-atributuak kopiatzen diren bitartean
Fitxategiarekin hainbat atributu daude lotuta, hala nola, sarbide-denbora, aldaketa-denbora, baimenak, etab. Lehenespenez, atributu hauek ez dira gordetzen fitxategia kopiatzean. Portaera lehenetsi hau gainidazteko -p aukera erabil dezakegu.
Hori ulertzeko, lehenik eta behin, eguneratu fitxategi-1.txt-aren denbora-zigilua:
$ touch -t 10101010 file-1.txt
Orain, sor dezagun fitxategi honen kopia bat bere atributu guztiak gordez:
$ cp -p -v file-1.txt file-6.txt
Azkenik, egiaztatu file-6.txt fitxategiaren denbora-zigilua:
$ ls -l file-6.txt

13. Nola egin kopia-eragiketa modu errekurtsiboan
Orain arte fitxategi bakarra nola kopiatu ikusi genuen. Hala ere, askotan direktorio jakin bateko fitxategi eta azpidirektorio guztiak kopiatu behar izaten ditugu.
Horrelakoetan, modu errekurtsiboa erabil dezakegu -r edo -R aukera erabiliz.
Beraz, sortu direktorio bat eta gehi ditzagun fitxategi eta azpidirektorio batzuk haren azpian:
$ mkdir -p dir-1/dir-2
$ touch dir-1/file-1.txt dir-1/dir-2/file-2.txt
Ondoren, egiaztatu direktorio-egitura behar bezala sortu dela:
$ tree dir-1
Orain, kopia dezagun dir-1 direktorioa modu errekurtsiboan komando hau erabiliz:
$ cp -r -v dir-1 dir-3
Azkenik, egiaztatu fitxategi eta azpidirektorio guztiak ondo kopiatu direla:
$ tree dir-3

14. Nola kopiatu hainbat direktorio
Fitxategien antzera, hainbat direktorio kopiatu ditzakegu komando bakarra erabiliz. Hala ere, hori lortzeko helmuga direktorioa dagoeneko presente egon behar du eta komandoaren azken argumentua izan behar du. Uler dezagun hau adibide batekin.
Lehenik eta behin, sortu direktorio bat direktorio berri bat:
$ mkdir dir-4
Orain, kopia ditzagun dir-1 eta dir-3 direktorioak dir-4 direktoriora beheko komandoa erabiliz:
$ cp -r -v dir-1 dir-3 dir-4
Era berean, komandoaren -t aukera erabil dezakegu emaitza bera lortzeko. Aukera honek helmuga direktorioa zehazteko aukera ematen digu. Beraz, lehen argumentu gisa ere erabil dezakegu:
$ cp -t dir-4 -r -v dir-1 dir-3

Artikulu honetan, cp komandoa erabiliz fitxategiak eta direktorioak nola kopiatu aztertu dugu. Hasiberriek adibide hauek erabil ditzakete eguneroko bizitzan, Linux sistemekin lan egiten duten bitartean.
Baliteke hauek ere gustatzea:
- Aurrerapena - Erakutsi kopiatutako datuen ehunekoa (cp, mv, dd, tar) komandoetarako
- Begiratu (Kopiatu/Babeskopia/Konprimitu) Datuen aurrerapena ‘pv’ komandoa erabiliz
- Kopiatzeko komando aurreratua - Linux-en fitxategi/karpeta handiak kopiatzen diren bitartean aurrerapen-barra erakusten du
Ezagutzen al duzu Linux-en cp komandoaren beste adibiderik onenaren bat? Jakin iezaguzu zure iritzia beheko iruzkinetan.