Kif tuża l-kmand cp b'mod effettiv fil-Linux [14 Eżempji]
Qosor: F'din il-gwida faċli biex issegwi, aħna ser niddiskutu xi eżempji prattiċi tal-kmand cp. Wara li jsegwu din il-gwida, l-utenti jkunu jistgħu jikkopjaw fajls u direttorji faċilment fil-Linux billi jużaw l-interface tal-linja tal-kmand.
Bħala utenti Linux, aħna jinteraġixxu mal-fajls u direttorji tal-ikkupjar. Ċertament, nistgħu nużaw maniġer tal-fajl grafiku biex inwettqu l-operazzjoni tal-kopja. Madankollu, ħafna mill-utenti tal-Linux jippreferu jużaw il-kmand cp minħabba s-sempliċità u l-funzjonalità rikka tiegħu.
F'din il-gwida faċli għall-Bidu, se nitgħallmu dwar il-kmand cp. Kif jissuġġerixxi l-isem, il-kmand cp jintuża biex jikkopja fajls u direttorji f'mogħdija partikolari.
Matul din il-gwida, se nifhmu l-użu tal-kmand cp billi tuża eżempji prattiċi li jistgħu jintużaw minn jum għal jum.
Mela ejja nibdew.
Sintassi tal-Kmand Cp
Is-sintassi tal-kmand cp hija identika għal kmandi Linux oħra. F'livell għoli, huwa maqsum f'żewġ partijiet - għażliet u argumenti:
$ cp [OPTIONS] <SOURCE> <DEST> $ cp [OPTIONS] <SOURCE-1> <SOURCE-2> ... <DIRECTORY>
Fis-sintassi ta' hawn fuq, il-parentesi kwadri ([])
jirrappreżentaw l-argumenti fakultattivi filwaqt li l-parentesi angolari (<>)
jirrappreżentaw l-argumenti obbligatorji.
1. Kif tikkopja Fajl fil-Linux
Wieħed mill-użu bażiku tal-kmand cp huwa li tikkopja fajl f'direttorju kurrenti. Ħafna mill-utenti tal-ħin iwettqu din l-operazzjoni biex jieħdu backup tal-konfigurazzjoni importanti.
Pereżempju, ħafna drabi noħolqu kopja ta' backup tal-fajl /etc/ssh/sshd_config qabel ma naġġornaw il-konfigurazzjoni SSH.
Biex tifhem l-użu, ejja noħolqu fajl sempliċi:
$ touch file-1.txt
Sussegwentement, oħloq kopja tal-fajl billi tuża l-kmand li ġej:
$ cp file-1.txt file-2.txt

2. Uri l-Progress tal-Kmand tal-Kopja
Fl-eżempju preċedenti, użajna l-kmand ls biex nivverifikaw jekk l-operazzjoni tal-kopja tal-fajl rnexxietx jew le. Madankollu, ma jagħmilx sens li tuża kmand ieħor biss biex tivverifika r-riżultat tal-kmandi preċedenti.
F'każijiet bħal dawn, nistgħu nippermettu l-modalità verbose billi tuża l-għażla -v
, li tipprovdi dijanjostika għal kull fajl ipproċessat.
Ejja nagħmlu kopja tal-fajl file-1.txt billi tuża l-kmand li ġej:
$ cp -v file-1.txt file-3.txt

Fl-output ta 'hawn fuq, il-vleġġa tirrappreżenta l-fajl li qed jiġi kkupjat. L-argument tan-naħa tax-xellug huwa l-fajl tas-sors filwaqt li l-argument tan-naħa tal-lemin huwa l-fajl tad-destinazzjoni.
3. Kif tikkopja Fajls Multipli fid-Direttorju
S'issa ħdimna b'fajl wieħed u d-direttorju tax-xogħol attwali biss. Madankollu, fl-ambjent tal-produzzjoni reali, irridu naħdmu ma 'numru kbir ta' fajls. Wieħed mill-każijiet ta 'użu komuni f'ambjenti bħal dawn huwa li tikkopja fajls multipli f'direttorju wieħed.
Ovvjament, nistgħu nwettqu l-kmand cp diversi drabi biex niksbuh, iżda dan mhux se jkun l-aktar mod effettiv. Biex twettaq tali operazzjoni b'mod effettiv, nistgħu nużaw sintassi alternattiva tal-kmand cp.
Allura, l-ewwel, oħloq direttorju ġdid bl-isem dir-1:
$ mkdir dir-1
Issa, ejja nikkopja t-tliet fajls fid-direttorju dir-1 billi tuża l-kmand uniku:
$ cp -v file-1.txt file-2.txt file-3.txt dir-1

L-output ta 'hawn fuq juri li l-fajls kollha ġew ikkupjati fid-direttorju dir-1. Ukoll, huwa importanti li wieħed jinnota li, biex tuża din is-sintassi alternattiva, id-direttorju għandu jkun diġà preżenti u għandu jkun l-aħħar argument tal-kmand.
4. Kif tevita li tikteb fuq il-fajl
B'mod awtomatiku, il-kmand cp jissostitwixxi l-fajl tad-destinazzjoni, li jfisser li se jikteb fuq il-fajl jekk jeżisti fid-destinazzjoni bl-istess isem. Madankollu, nistgħu tiddiżattiva din l-imġieba default billi tuża l-għażla -n
.
Biex tifhem dan, ejja nippruvaw tikteb fuq il-fajl eżistenti:
$ cp -n -v file-1.txt file-2.txt
F'dan l-eżempju, użajna l-għażla -v
biex nuru li l-fajl file-2.txt ma ġiex miktub fuqu.
5. Kif tikteb fuq il-fajl b'Konferma
Fl-eżempju preċedenti, rajna kif nevitaw il-kitba fuq il-fajl tad-destinazzjoni. Madankollu, xi kultant irridu nissostitwixxu d-destinazzjoni tal-fajl b'mod aktar sikur.
F'każijiet bħal dawn, nistgħu nużaw l-għażla -i
tal-kmand biex nagħmlu l-operazzjoni tal-kopja interattiva. Din l-għażla turi l-messaġġ ta’ twissija u tistenna l-konferma tal-utent qabel tikteb fuq il-fajl.
Biex turi dan, ejja nippruvaw niktbu fuq il-fajl eżistenti:
$ cp -i file-1.txt file-2.txt cp: overwrite 'file-2.txt'?
Kif nistgħu naraw, il-kmand qed jistenna konferma. Eżatt bħal kmandi oħra tal-Linux, nistgħu nużaw y
biex inkomplu jew n
biex twaqqaf l-operazzjoni.
Din l-imġieba default mhux interattiva tal-kmand cp mhix sikura ħafna. Hemm ċans li l-utent jista’ jikteb fuqu konfigurazzjoni importanti bi żball. Għalhekk xi wħud mid-distribuzzjonijiet tal-Linux jinfurzaw l-imġieba interattiva awtomatikament billi jużaw il-kmand tal-alias:
$ alias cp='cp -i'
6. Ikteb Fajl Biss jekk is-Sors Huwa Aktar Ġdid
Fl-eżempju preċedenti, rajna kif tuża l-mod interattiv. Madankollu, xi kultant, utent jista 'jikteb fuq il-fajl l-aktar ġdid involontarjament.
Biex nevitaw każijiet bħal dawn suxxettibbli għall-iżbalji, nistgħu nużaw l-għażla -u
, li tipprova operazzjoni ta 'kopja biss jekk is-sors ikun aktar ġdid mid-destinazzjoni jew jekk il-fajl ma jkunx preżenti fid-destinazzjoni.
L-ewwel, aġġorna l-timestamp tal-fajl tas-sors:
$ touch -t 10101010 file-1.txt $ ls -l file-1.txt
Fl-eżempju ta 'hawn fuq, użajna l-għażla -t
tal-kmand touch biex tissettja l-timestamp tal-fajl għal 10-Oct-2010.
Sussegwentement, ejja naġġornaw il-timestamp tal-fajl tad-destinazzjoni għall-ħin attwali:
$ touch file-2.txt
Issa, ejja nippruvaw inwettqu operazzjoni ta' kopja billi tuża l-għażla -u
:
$ cp -u -v file-1.txt file-2.txt
Hawnhekk, nistgħu naraw li l-operazzjoni ta 'kopja ma ġietx ippruvata minħabba li l-fajl tad-destinazzjoni huwa aktar ġdid mis-sors.
Fl-aħħarnett, ejja naqsbu l-argumenti tas-sors u tad-destinazzjoni u nwettqu l-operazzjoni tal-kopja:
$ cp -u -v file-2.txt file-1.txt
Fl-output ta 'hawn fuq, nistgħu nosservaw li l-operazzjoni tal-kopja tirnexxi minħabba li l-fajl tas-sors huwa aktar ġdid mid-destinazzjoni.

7. Kif tagħmel backup tal-fajl qabel il-kitba mill-ġdid
Nistgħu nagħtu struzzjonijiet lill-kmand cp biex jieħu backup tal-fajl tad-destinazzjoni qabel ma jikteb fuqu. Biex niksbu dan nistgħu nużaw l-għażla --backup
, li twettaq backups awtomatizzati.
$ cp --backup=numbered -v file-1.txt file-2.txt
F'dan l-eżempju, użajna l-politika ta' backup numerata. Din il-politika tuża numri inkrementali fl-ismijiet tal-fajls tal-backup.
Biex tifhem dan, ejja tesegwixxi l-istess kmand diversi drabi u osserva l-output:
$ 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. Kif Tisforza l-Kopja biex tikteb fuq il-fajl
Fil-ftit eżempji preċedenti, rajna kif tikteb fuq il-fajl b'mod aktar sikur. Madankollu, f'xi każijiet rari, ir-rekwiżit huwa li l-fajl jissostitwixxi. Madankollu, m'hemmx garanzija li l-operazzjoni tirnexxi kull darba.
Pereżempju, l-operazzjoni tal-kopja tfalli jekk il-fajl tad-destinazzjoni ma jkollux il-permessi tal-kitba. Ejja nuru dan b'eżempju.
L-ewwel, ibdel il-permessi tal-fajl tad-destinazzjoni:
$ chmod 444 file-2.txt $ ls -l file-2.txt
Issa, ejja nippruvaw niktbu fuq il-fajl file-2.txt:
$ cp file-1.txt file-2.txt
Fl-output ta 'hawn fuq, nistgħu naraw li l-kmand falla bil-permess miċħud żball.
Biex negħlbu din il-limitazzjoni, nistgħu nużaw l-għażla -f
, li tħassar il-fajls tad-destinazzjoni u tipprova l-operazzjoni tal-kopja jekk il-fajl tad-destinazzjoni ma jistax jinfetaħ.
Issa, ejja nużaw l-għażla -f
biex tikteb fuq il-fajl bil-qawwa:
$ cp -f -v file-1.txt file-2.txt

9. Kif Neħħi l-Fajl tad-Destinazzjoni Qabel l-Ikkupjar
Fl-eżempju preċedenti, rajna kif tneħħi l-fajl tad-destinazzjoni jekk ikun hemm żball waqt li tħaddem. Madankollu, xi kultant ir-rekwiżit huwa li tneħħi l-fajl tad-destinazzjoni l-ewwel u mbagħad twettaq l-operazzjoni tal-kopja.
Biex nissodisfaw tali rekwiżit, nistgħu nużaw l-għażla --remove-destination
.
$ cp --remove-destination -v file-1.txt file-2.txt

Fl-output ta 'hawn fuq, nistgħu naraw li l-kmand cp l-ewwel ineħħi l-fajl tad-destinazzjoni u mbagħad iwettaq l-operazzjoni tal-kopja.
10. Kif Oħloq Fajl Hard Link Minflok Ikkopjar
Nistgħu noħolqu rabta iebsa minflok ma noħolqu kopja ġdida tal-fajl tas-sors. Din l-għażla għandha rwol importanti meta jkun hemm skarsezza ta 'spazju fuq disk.
Allura, ejja nużaw l-għażla -l
biex noħolqu hard link:
$ cp -l -v file-1.txt file-4.txt
Issa, ejja niċċekkjaw in-numri tal-inode taż-żewġ fajls biex tivverifika l-hard links:
$ ls -i1 file-1.txt file-4.txt

Fl-output ta 'hawn fuq, in-numri fl-ewwel kolonna jirrappreżentaw in-numri tal-inode.
11. Kif Oħloq Fajl ta' Soft Link Minflok Ikkopja
B'mod simili, nistgħu noħolqu soft link minflok ma noħolqu kopja ġdida billi tuża l-għażla -s
kif muri hawn taħt:
$ cp -s -v file-1.txt file-5.txt
Issa, ejja nivverifikaw li r-rabta simbolika ġiet maħluqa b'mod korrett:
$ ls -l file-5.txt

Fl-output ta 'hawn fuq, l-aħħar kolonni jirrappreżentaw ir-relazzjoni ta' rabta simbolika.
12. Kif tippreserva l-attributi tal-fajl waqt l-ikkupjar
Hemm diversi attributi assoċjati mal-fajl, bħall-ħin tal-aċċess tiegħu, il-ħin tal-modifika, il-permessi, eċċ. B'mod awtomatiku, dawn l-attributi ma jiġux ippreservati waqt l-ikkupjar tal-fajl. Biex tegħleb din l-imġiba default nistgħu nużaw l-għażla -p
.
Biex tifhem dan, l-ewwel, aġġorna l-timestamp tal-file-1.txt:
$ touch -t 10101010 file-1.txt
Issa, ejja noħolqu kopja ta 'dan il-fajl billi nippreservaw l-attributi kollha tiegħu:
$ cp -p -v file-1.txt file-6.txt
Fl-aħħarnett, ivverifika l-timestamp tal-fajl file-6.txt:
$ ls -l file-6.txt

13. Kif Twettaq Operazzjoni ta' Kopja Rikursiva
S'issa rajna kif tikkopja fajl wieħed. Madankollu, ħafna drabi għandna nikkopjaw il-fajls u s-subdirettorji kollha tad-direttorju partikolari.
F'każijiet bħal dawn, nistgħu nużaw il-mod rikorsiv jew billi tuża l-għażla -r
jew -R
.
Allura, ejja noħolqu direttorju u żid ftit fajls u sottodirettorji taħtu:
$ mkdir -p dir-1/dir-2 $ touch dir-1/file-1.txt dir-1/dir-2/file-2.txt
Sussegwentement, ivverifika li l-istruttura tad-direttorju tkun inħolqot b'mod korrett:
$ tree dir-1
Issa, ejja nikkopja d-direttorju dir-1 b'mod rikorsiv billi tuża l-kmand li ġej:
$ cp -r -v dir-1 dir-3
Fl-aħħarnett, ivverifika li l-fajls u s-subdirettorji kollha ġew ikkupjati b'suċċess:
$ tree dir-3

14. Kif tikkopja direttorji multipli
Simili għall-fajls, nistgħu nikkopja direttorji multipli rikorsivi bl-użu ta 'kmand wieħed. Madankollu, biex jinkiseb dan id-direttorju tad-destinazzjoni għandu jkun diġà preżenti u għandu jkun l-aħħar argument fil-kmand. Ejja nifhmu dan b'eżempju.
L-ewwel, oħloq direttorju direttorju ġdid:
$ mkdir dir-4
Issa, ejja nikkopja d-direttorji dir-1 u dir-3 fid-direttorju dir-4 billi tuża l-kmand hawn taħt:
$ cp -r -v dir-1 dir-3 dir-4
B'mod simili, nistgħu nużaw l-għażla -t
tal-kmand biex niksbu l-istess riżultat. Din l-għażla tippermettilna nispeċifikaw id-direttorju tad-destinazzjoni. Allura nistgħu nużawha wkoll bħala l-ewwel argument:
$ cp -t dir-4 -r -v dir-1 dir-3

F'dan l-artikolu, iddiskutejna kif tikkopja fajls u direttorji bl-użu tal-kmand cp. Dawk li jibdew jistgħu jirreferu għal dawn l-eżempji fil-ħajja ta 'kuljum waqt li jaħdmu ma' sistemi Linux.
Tista' wkoll tħobb:
- Progress – Uri Perċentwal ta' Dejta Kkupjata għal Kmandi (cp, mv, dd, tar)
- Immonitorja l-Progress tad-Data (Kopja/Backup/Kkompressa) billi tuża Kmand ‘pv’
- Kmand Avvanzat tal-Kopja – Juri l-Istrixxa tal-Progress Waqt li Tikkopja Fajls/Folders Kbar fil-Linux
Taf bl-aħjar eżempju ieħor tal-kmand cp fil-Linux? Għidilna l-fehmiet tiegħek fil-kummenti hawn taħt.