Paano Kopyahin ang isang Direktoryo at ang Nilalaman nito sa Linux

Gamitin ang command na 'cp' upang kopyahin at i-paste ang buong mga direktoryo mula sa isang lugar patungo sa isa pa

Anuman ang Operating System na iyong pinapatakbo, ang pagkopya ng isang file o isang folder mula sa isang lokasyon patungo sa isa pa ay ang pinakapangunahing gawain na ginagawa mo araw-araw. Sa isang abalang araw sa trabaho, sa panahon ng pagtatalaga ng proyekto sa paaralan, o sa panahon ng patuloy na pagbuo ng isang proyekto, ang pagkopya ng mga file mula sa lokasyon A patungo sa lokasyon B ay hindi maiiwasan.

Ang pagkopya ng mga file o folder ay karaniwang ginagawa gamit ang GUI. Pinangangalagaan ng Linux ang iyong ugali na magtrabaho sa terminal sa pamamagitan ng pagbibigay ng command-line utility na nagbibigay-daan sa iyong kopyahin ang mga file o folder mula sa isang lokasyon patungo sa isa pa. Gamit ang cp Ang command na may iba't ibang opsyon ay nagbibigay sa iyo ng kalayaang kumopya ng mga file at folder sa maraming paraan.

Hayaan akong gabayan ka sa artikulong ito kung saan matututunan mo ang tungkol sa cp command at ang mga paraan upang kopyahin ang mga direktoryo kasama ang kanilang nilalaman.

Available ang mga opsyon sa cp utos

Ito ang mga pinakakaraniwang opsyon na ginagamit sa cp utos sa konteksto ng pagkopya ng isang direktoryo at lahat ng nilalaman nito.

Mga pagpipilianPaglalarawan
-vverbose mode (nagpapakita ng pag-unlad)
-r/Rkopyahin ang mga direktoryo nang paulit-ulit
-nhuwag i-overwrite ang isang umiiral na file o folder
-iprompt bago i-overwrite

Kopyahin ang isang direktoryo mula sa isang lokasyon patungo sa isa pa

Magsimula tayo sa pinakapangunahing paggamit ng cp utos. Gagamitin namin ang command na ito na may opsyon -r.

Gamit ang -r Tinitiyak ng opsyon na ang mga sub-folder at mga file sa loob ng direktoryo na iyong kinokopya, ay makokopya din.

Syntax:

cp -r [source_location] [target_location]

Halimbawa:

Mayroon akong dalawang direktoryo sa loob ng aking kasalukuyang gumaganang direktoryo na tinatawag na 'proyekto' at 'workspace'.

Sa halimbawang ito, gagamitin ko ang cp -r command na kopyahin ang direktoryo na 'proyekto' kasama ang lahat ng nilalaman nito sa isang bagong lokasyon i.e. '/home/gaurav/workspace'. Nangangahulugan lamang ito na kinokopya ko ang direktoryo na pinangalanang 'proyekto' sa isang direktoryo na pinangalanang 'workspace'.

Ito ang mga nilalaman ng 'proyekto' ng direktoryo. Gamit ang ls utos na ipakita ang mga nilalaman nito.

gaurav@ubuntu:~/project$ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 Set 17 18:26 . drwxr-xr-x 88 gaurav gaurav 266240 Set 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 Set 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096: drwxr-xr-x 4096: drwxr-xr-x -x 2 gaurav gaurav 4096 Set 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Set 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 Set 17 18:26 temp@c. ubuntu:~/project$

Ngayon, gamit ang cp -r command na maaari naming kopyahin ang direktoryo na 'proyekto' sa anumang nais na lokasyon.

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

Output:

gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 Set 17 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 Mar 22 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096: Sep-17 project - 17 Sep- -- 1 gaurav gaurav 1535 Set 16 17:13 source.c gaurav@ubuntu:~/workspace$ 

Sa output sa itaas, makikita natin na ang direktoryo na 'proyekto' ay kinopya mula sa orihinal na lokasyon patungo sa bagong lokasyong '/home/gaurav/workspace' na ito. Ngayon, buksan natin ang direktoryo na 'proyekto' at suriin kung ang lahat ng nilalaman sa loob nito ay kinopya rin.

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

Tandaan: gumamit ako ./ dito sa halip na pumasok sa kumpletong landas. Nangangahulugan lamang ito na ito ang aking home directory path at ang workspace ay matatagpuan sa aking tahanan o kasalukuyang working directory. Para sa karagdagang paglilinaw tungkol dito, maaari mong tingnan ang artikulong ito.

Output:

gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 Set 17 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 Set 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 Set 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Set: 27x-dem1 2 gaurav gaurav 4096 Set 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 Set 17 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 Set 17 18:27 temp.c: gaurav@ubuntu ~/workspace/project$ 

Mula sa output na ito, maaari nating tapusin na ang lahat ng nilalaman ng 'proyekto' ng direktoryo ay inilipat din sa bagong lokasyon.

Pagkopya ng maramihang mga direktoryo mula sa isang lokasyon patungo sa isa pa

Upang kopyahin ang maramihang mga direktoryo, cp Ang command ay maaaring gamitin sa parehong paraan tulad ng nabanggit sa itaas. Ang tanging pagbabago dito ay kakailanganin mong ipasok ang maramihang pinagmulang landas ng maramihang mga direktoryo na makokopya.

Syntax:

cp -r [source_path_1] [source_path_n] [destination_path]

Suriin natin ang utos na ito gamit ang isang halimbawa.

Halimbawa:

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

Dito, kinopya ko ang dalawang direktoryo na 'snap' at 'proyekto' mula sa aking kasalukuyang gumaganang direktoryo patungo sa isang bagong lokasyon na '/home/gaurav/tomcat'.

Ngayon tingnan natin kung ang mga direktoryo ay kinopya kasama ang kanilang nilalaman sa bagong lokasyon.

gaurav@ubuntu:~/tomcat$ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 Set 19 12:16 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 19 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 Set 19 12:16 project drwxr-xr-x 7 gaurav gaurav 4096 Sep 16 snap

Sinusuri kung ang nilalaman ng mga direktoryo na ito ay kinopya din.

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$

Gamit cp utos na may verbose mode

Gamit ang cp utos na may opsyon -v pinapagana ang verbose mode. Ang tampok na ito ay nagpapakita ng mga file sa terminal na kinokopya. Ang pangalan ng File o Folder na kinokopya ay ipapakita sa iyong terminal.

Syntax:

cp -vr [source_directory] [target_location_path]

Halimbawa:

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

Sa halimbawang ito, ang direktoryo na 'apache' ay kinopya sa isang bagong folder na 'space'. Ginamit ko ang -v opsyon na may -r, upang ang lahat ng nilalaman ng direktoryo ng apache ay makopya din.

Output:

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

Ang output ay nagpapakita ng direktoryo na kinokopya. Ang parehong proseso ay maaaring gawin sa kaso ng pagkopya ng maramihang mga file.

Iwasan ang pag-overwrite kapag ginagamit cp utos

Minsan habang ginagamit ang cp utos na kopyahin ang maramihang mga file o folder, maaari kang ma-overwrite ang mga file na nakopya na sa bagong lokasyon. Upang maiwasan ito, ipinapayong gamitin ang -i opsyon kasama ang cp utos. Ipo-prompt ka nito bago i-overwrite ang anumang file o folder.

Syntax:

cp -ri [source_directory_path] [target_location_path]

Tandaan: Dito, sa syntax na ginamit ko -r opsyon din. Ito ay kokopyahin din ang nilalaman ng mga direktoryo. Susuriin din nito kung ang alinman sa mga sub-folder at file na ito sa loob ng direktoryo ay na-overwrite.

Halimbawa:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: i-overwrite ang './tomcat/snap/pycharm-community/current'?

Dito, sinubukan kong kopyahin ang isang direktoryo na pinangalanang 'snap' sa isang bagong lokasyon. Ngunit ang pangalan ng direktoryo na 'snap' ay umiiral na sa bagong lokasyon. Kaya, ipo-prompt ako ng terminal bago i-overwrite ang kasalukuyang snap directory.

Maaari mong i-type ang 'Oo'o'Hindi' bilang tugon sa prompt na ito.

Kung sakaling, kung hindi mo gagamitin ang -i opsyon, ang kasalukuyang direktoryo ay mapapatungan ng bagong direktoryo.

Laktawan ang pag-overwrit ng mga file at direktoryo na may cp utos

Magagamit natin ang -n opsyon na direktang atasan ang terminal na huwag i-overwrite at laktawan lang ang mga katulad na file at direktoryo habang ginagamit ang cp utos.

Syntax:

cp -nr [source_directory_path] [target_location_path]

Gamit ang command na ito maaari kang makasigurado na ang iyong mga file at folder ay hindi ma-overwrite.

Halimbawa:

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

Dito, umiiral na ang direktoryo na 'snap' sa target na lokasyon. Samakatuwid, ang paggamit -n Titiyakin ng opsyon na hindi i-overwrite ang direktoryo na ito.

Unlike -i opsyon, dito hindi ka ipo-prompt tungkol sa pag-overwrit.

Konklusyon

Gamit ang cp command na kopyahin ang mga direktoryo at ang kanilang nilalaman sa Linux ay isang madaling proseso. Upang matuto nang higit pa tungkol sa cp command kasama ang iba pang magagamit na mga opsyon, maaari mong tingnan ang manu-manong pahina sa pamamagitan ng pag-type lalaki cp sa iyong terminal ng Linux.