Kaip nukopijuoti katalogą ir jo turinį sistemoje „Linux“.

Naudokite komandą „cp“, norėdami nukopijuoti ir įklijuoti visus katalogus iš vienos vietos į kitą

Nesvarbu, kurią operacinę sistemą naudojate, vieno failo ar aplanko kopijavimas iš vienos vietos į kitą yra pagrindinė užduotis, kurią atliekate kasdien. Įtemptą dieną darbe, atliekant projektinę užduotį mokykloje ar vykstant projekto kūrimui, failų kopijavimas iš vietos A į vietą B yra neišvengiamas.

Failų ar aplankų kopijavimas paprastai atliekamas naudojant GUI. „Linux“ rūpinasi jūsų įpročiu dirbti terminale, pateikdama komandų eilutės įrankį, leidžiantį kopijuoti failus ar aplankus iš vienos vietos į kitą. Naudojant cp komanda su įvairiomis parinktimis suteikia laisvę kopijuoti failus ir aplankus keliais būdais.

Leiskite man perskaityti šį straipsnį, kuriame sužinosite apie cp komandą ir būdus, kaip kopijuoti katalogus kartu su jų turiniu.

Galimos parinktys su cp komandą

Tai yra dažniausiai naudojamos parinktys su cp komandą katalogo ir viso jo turinio kopijavimo kontekste.

Galimybėsapibūdinimas
-vdaugiažodinis režimas (rodo eigą)
-r/Rrekursyviai kopijuoti katalogus
-nneperrašykite esamo failo ar aplanko
-iraginti prieš perrašant

Nukopijuokite katalogą iš vienos vietos į kitą

Pradėkime nuo paprasčiausio naudojimo cp komandą. Šią komandą naudosime su parinktimi -r.

Naudojant -r parinktis užtikrina, kad poaplankiai ir failai kataloge, kurį kopijuojate, taip pat bus nukopijuoti.

Sintaksė:

cp -r [šaltinio_vieta] [target_location]

Pavyzdys:

Dabartiniame darbo kataloge turiu du katalogus, vadinamus „projektas“ ir „darbo sritis“.

Šiame pavyzdyje aš naudosiu cp -r komanda nukopijuoti katalogą „projektas“ kartu su visu jo turiniu į naują vietą, ty „/home/gaurav/workspace“. Tai tiesiog reiškia, kad aš nukopijuoju katalogą pavadinimu „projektas“ į katalogą, pavadintą „darbo sritis“.

Tai yra katalogo „projektas“ turinys. Naudojant ls komandą, kad būtų rodomas jos turinys.

gaurav@ubuntu:~/project$ ls -al viso 288 drwxr-xr-x 6 gaurav gaurav 4096 Rugsėjo 17 d. 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 rugs. 17 d. 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 rugsėjo 17 d. 18:25 dem1, drwxr-xr-x 2 gaurav gaurav: 215-x18 -x 2 gaurav gaurav 4096 rugsėjo 17 d. 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 rugsėjo 17 d. 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 rugsėjo 17 d. 18:26@ temp. ubuntu:~/projektas$

Dabar, naudojant cp -r komanda galime nukopijuoti katalogą „projektas“ į bet kurią norimą vietą.

gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$

Išvestis:

gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Rugsėjo 17 d. 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 rugsėjo 17 d., 18:24 -- 1 gaurav gaurav 1535 rugsėjo 16 d. 17:13 source.c gaurav@ubuntu:~/workspace$ 

Aukščiau pateiktame išvestyje matome, kad katalogas „projektas“ yra nukopijuotas iš pradinės vietos į šią naują vietą „/home/gaurav/workspace“. Dabar atidarykime katalogą „projektas“ ir patikrinkime, ar visas jame esantis turinys taip pat nukopijuotas.

gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$

Pastaba: esu naudojusi ./ čia, užuot įėję į visą kelią. Tai tiesiog reiškia, kad tai yra mano namų katalogo kelias, o darbo vieta yra mano namų arba dabartiniame darbo kataloge. Norėdami sužinoti daugiau apie tai, galite peržiūrėti šį straipsnį.

Išvestis:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 Rugsėjo 17 d. 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 rugsėjo 17 d. 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 rugsėjo 17 d. 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 drxw8:2r-xr-x 2 gaurav gaurav 4096 rugsėjo 17 d. 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 rugsėjis 17 d. 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 rugsėjo 17 d. 18:27 gaurav@ temp. ~/darbo vieta/projektas$ 

Iš šios išvesties galime daryti išvadą, kad visas katalogo „projektas“ turinys taip pat perkeliamas į naują vietą.

Kelių katalogų kopijavimas iš vienos vietos į kitą

Norėdami nukopijuoti kelis katalogus, cp komanda gali būti naudojama taip pat, kaip minėta aukščiau. Vienintelis pakeitimas čia bus tas, kad turėsite įvesti kelis šaltinio kelius iš kelių katalogų, kuriuos norite nukopijuoti.

Sintaksė:

cp -r [šaltinio_kelias_1] [šaltinio_kelias_n] [paskirties_kelias]

Patikrinkime šią komandą pavyzdžiu.

Pavyzdys:

gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat

Čia aš nukopijavau du katalogus „snap“ ir „projektas“ iš savo dabartinio darbo katalogo į naują vietą „/home/gaurav/tomcat“.

Dabar patikrinkime, ar katalogai su jų turiniu nukopijuoti į naują vietą.

gaurav@ubuntu:~/tomcat$ ls -al iš viso 9316 drwxrwxr-x 5 gaurav gaurav 4096 rugsėjo 19 d., 12:16. drwxr-xr-x 88 gaurav gaurav 266240 rugsėjo 19 d. 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 rugsėjo 19 d. 12:16 projektas drwxr-xr-x 7 gaurav gaurav 4096 12 rugsėjis:19

Tikrinama, ar šių katalogų turinys taip pat yra nukopijuotas.

gaurav@ubuntu:~/tomcat/snap$ ls couchdb eclipse htop pycharm-community vim-editor gaurav@ubuntu:~/tomcat/snap$ 
gaurav@ubuntu:~/tomcat/project$ ls dem1, dem2 dem3 dem4 temp.c gaurav@ubuntu:~/tomcat/project$

Naudojant cp komandą su žodiniu režimu

Naudojant cp komanda su parinktimi -v įjungia žodinį režimą. Ši funkcija rodo terminale esančius failus, kurie yra kopijuojami. Kopijuojamo failo arba aplanko pavadinimas rodomas jūsų terminale.

Sintaksė:

cp -vr [šaltinio_katalogas] [target_location_path]

Pavyzdys:

gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space

Šiame pavyzdyje katalogas „apache“ nukopijuojamas į naują aplanką „tarpas“. Aš naudojau -v variantas su -r, kad visas apache katalogo turinys taip pat būtų nukopijuotas.

Išvestis:

'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$

Išvestyje rodomas katalogas, kuris yra kopijuojamas. Tą patį procesą galima atlikti ir nukopijuojant kelis failus.

Naudodami venkite perrašyti cp komandą

Kartais naudojant cp komandą, norėdami nukopijuoti kelis failus ar aplankus, galite perrašyti failus, kurie jau nukopijuoti į naują vietą. Norint to išvengti, patartina naudoti -i variantas su cp komandą. Tai paragins jus prieš perrašydami bet kurį failą ar aplanką.

Sintaksė:

cp -ri [šaltinio_katalogo_kelias] [tikslinės_vietos_kelias]

Pastaba: Čia mano naudojama sintaksė -r variantas taip pat. Tai taip pat nukopijuos katalogų turinį. Jis taip pat patikrins, ar kuris nors iš šių poaplankių ir failų kataloge nėra perrašomas.

Pavyzdys:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: perrašyti './tomcat/snap/pycharm-community/current'?

Čia bandžiau nukopijuoti katalogą pavadinimu „snap“ į naują vietą. Tačiau naujoje vietoje katalogo pavadinimas „snap“ jau yra. Todėl terminalas būsiu paragintas prieš perrašydamas esamą snap katalogą.

Galite įvesti "Taip"arba"Nr“ kaip atsakas į šį raginimą.

Tuo atveju, jei nenaudojate -i parinktis, esamas katalogas bus perrašytas nauju katalogu.

Praleiskite failų ir katalogų perrašymą naudodami cp komandą

Mes galime naudoti -n galimybė tiesiogiai nurodyti terminalui niekada neperrašyti ir tiesiog praleisti panašius failus ir katalogus naudojant cp komandą.

Sintaksė:

cp -nr [šaltinio_katalogo_kelias] [target_location_path]

Naudodami šią komandą galite būti tikri, kad jūsų failai ir aplankai nebus perrašyti.

Pavyzdys:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$

Čia katalogas „snap“ jau yra tikslinėje vietoje. Vadinasi, naudojant -n parinktis užtikrins, kad šis katalogas nebus perrašytas.

Skirtingai nei -i parinktį, čia nebūsite raginami perrašyti.

Išvada

Naudojant cp komanda nukopijuoti katalogus ir jų turinį Linux sistemoje yra paprastas procesas. Norėdami sužinoti daugiau apie cp komandą su kitomis galimomis parinktimis, galite peržiūrėti vadovo puslapį įvesdami vyras cp savo Linux terminale.