Hvordan kopiere en katalog og innholdet i Linux

Bruk 'cp'-kommandoen til å kopiere og lime inn hele kataloger fra ett sted til et annet

Uansett hvilket operativsystem du kjører, er kopiering av en fil eller en mappe fra ett sted til et annet den mest grunnleggende oppgaven du utfører daglig. På en travel dag på jobben, under en prosjektoppgave på skolen, eller under den pågående utviklingen av et prosjekt, er kopiering av filer fra lokasjon A til lokasjon B uunngåelig.

Kopiering av filer eller mapper gjøres vanligvis ved å bruke GUI. Linux tar seg av din vane med å jobbe på terminalen ved å tilby et kommandolinjeverktøy som lar deg kopiere filer eller mapper fra ett sted til et annet. Bruker cp kommando med en rekke alternativer gir deg friheten til å kopiere filer og mapper på flere måter.

La meg lede deg gjennom denne artikkelen hvor du vil lære om cp kommando og måter å kopiere kataloger sammen med innholdet på.

Alternativer tilgjengelig med cp kommando

Dette er de vanligste alternativene som brukes med cp kommando i sammenheng med kopiering av en katalog og alt innholdet.

AlternativerBeskrivelse
-vutførlig modus (viser fremgang)
-r/Rkopier kataloger rekursivt
-nikke overskriv en eksisterende fil eller mappe
-Jegspør før overskriving

Kopier en katalog fra ett sted til et annet

La oss starte med den mest grunnleggende bruken av cp kommando. Vi vil bruke denne kommandoen med alternativet -r.

Bruker -r alternativet sikrer at undermappene og filene i katalogen du kopierer, også blir kopiert.

Syntaks:

cp -r [kildested] [målsted]

Eksempel:

Jeg har to kataloger inne i min nåværende arbeidskatalog kalt 'prosjekt' og 'arbeidsområde'.

I dette eksemplet vil jeg bruke cp -r kommando for å kopiere katalogen 'prosjekt' sammen med alt innholdet til en ny plassering, dvs. '/home/gaurav/workspace'. Dette betyr ganske enkelt at jeg kopierer katalogen som heter 'prosjekt' til en katalog som heter 'arbeidsområde'.

Dette er innholdet i katalogen "prosjekt". Bruker ls kommando for å vise innholdet.

gaurav@ubuntu:~/prosjekt$ ls -al totalt 288 drwxr-xr-x 6 gaurav gaurav 4096 17. sep 18:26. drwxr-xr-x 88 gaurav gaurav 266240 sep 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 sep 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 25 demx1 Sep 25 26 -x 2 gaurav gaurav 4096 sep 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 sep 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 sep 17 18:26 temp. ubuntu:~/prosjekt$

Nå bruker du cp -r kommandoen kan vi kopiere katalogen 'prosjekt' til et hvilket som helst ønsket sted.

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

Produksjon:

gaurav@ubuntu:~/workspace$ ls -al totalt 408 drwxrwxr-x 4 gaurav gaurav 4096 17. sep 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 17. sep 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22. mars 2018 .metadata drwxr-xr-x 6 gaurav gaurav 409 - 17-1 prosjekt -- 1 gaurav gaurav 1535 16. september 17:13 source.c gaurav@ubuntu:~/workspace$ 

I utgangen ovenfor kan vi se at katalogen 'prosjekt' er kopiert fra den opprinnelige plasseringen til denne nye plasseringen '/home/gaurav/workspace'. La oss nå åpne katalogen 'prosjekt' og sjekke om alt innholdet i den også er kopiert.

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

Merk: jeg har brukt ./ her i stedet for å gå inn på hele banen. Det betyr ganske enkelt at det er min hjemmekatalogbane og arbeidsområdet er plassert i hjemmet mitt eller den nåværende arbeidskatalogen. For mer avklaring om dette, kan du sjekke ut denne artikkelen.

Produksjon:

gaurav@ubuntu:~/workspace/project$ ls -al totalt 28 drwxr-xr-x 6 gaurav gaurav 4096 17. sep 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 sep 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 sep 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4097 2 sep 1w sep: 1wx 2 gaurav gaurav 4096 sep 17 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 sep 17 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 sep 17 18:27 gaurav@temp. ~/arbeidsområde/prosjekt$ 

Fra denne utgangen kan vi konkludere med at alt innholdet i katalogen 'prosjekt' også flyttes til den nye plasseringen.

Kopiering av flere kataloger fra ett sted til et annet

For å kopiere flere kataloger, cp kommandoen kan brukes på samme måte som nevnt ovenfor. Den eneste endringen her vil være at du må angi de flere kildebanene til de flere katalogene som skal kopieres.

Syntaks:

cp -r [kildebane_1] [kildebane_n] [destinasjonsbane]

La oss sjekke denne kommandoen med et eksempel.

Eksempel:

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

Her har jeg kopiert to kataloger 'snap' og 'project' fra min nåværende arbeidskatalog til en ny plassering '/home/gaurav/tomcat'.

La oss nå sjekke om katalogene er kopiert med innholdet til den nye plasseringen.

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

Sjekker om innholdet i disse katalogene også er kopiert.

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$

Ved hjelp av cp kommando med detaljert modus

Bruker cp kommando med alternativet -v aktiverer den verbose modusen. Denne funksjonen viser filene på terminalen som kopieres. Navnet på filen eller mappen som blir kopiert vises på terminalen din.

Syntaks:

cp -vr [kildekatalog] [målstedsbane]

Eksempel:

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

I dette eksemplet blir katalogen 'apache' kopiert til en ny mappe 'space'. Jeg har brukt -v alternativ med -r, slik at alt innholdet i apache-katalogen også blir kopiert.

Produksjon:

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

Utgangen viser katalogen som kopieres. Den samme prosessen kan gjøres i tilfelle kopiering av flere filer.

Unngå å overskrive ved bruk cp kommando

Noen ganger mens du bruker cp kommandoen for å kopiere flere filer eller mapper, kan du ende opp med å overskrive filer som allerede er kopiert til den nye plasseringen. For å unngå dette er det tilrådelig å bruke -Jeg alternativet med cp kommando. Dette vil spørre deg før du overskriver en fil eller mappe.

Syntaks:

cp -ri [kildekatalogbane] [målstedsbane]

Merk: Her, i syntaksen jeg har brukt -r alternativet også. Dette vil også kopiere innholdet i katalogene. Den vil også sjekke om noen av disse undermappene og filene i katalogen blir overskrevet.

Eksempel:

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

Her prøvde jeg å kopiere en katalog som heter "snap" til en ny plassering. Men katalognavnet "snap" eksisterer allerede på den nye plasseringen. Derfor vil jeg bli spurt av terminalen før jeg overskriver den eksisterende snap-katalogen.

Du kan skrive 'Ja'eller'Nei' som svaret på denne oppfordringen.

I tilfelle, hvis du ikke bruker -Jeg alternativet, vil den eksisterende katalogen bli overskrevet av den nye katalogen.

Hopp over overskriving av filer og kataloger med cp kommando

Vi kan bruke -n alternativet for å direkte instruere terminalen til aldri å overskrive og ganske enkelt hoppe over lignende filer og kataloger mens du bruker cp kommando.

Syntaks:

cp -nr [kildekatalogbane] [målstedsbane]

Ved å bruke denne kommandoen kan du være sikker på at filene og mappene dine ikke blir overskrevet.

Eksempel:

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

Her eksisterer katalogen "snap" allerede på målstedet. Derfor bruker -n alternativet vil sikre at du ikke overskriver denne katalogen.

I motsetning til -Jeg alternativet, her vil du ikke bli spurt om overskrivingen.

Konklusjon

Bruker cp kommandoen for å kopiere kataloger og deres innhold i Linux er en enkel prosess. For å lære mer om cp kommando med andre tilgjengelige alternativer, kan du sjekke ut manualsiden ved å skrive mann cp i din Linux-terminal.