Brug 'cp'-kommandoen til at kopiere og indsætte hele mapper fra et sted til et andet
Uanset hvilket operativsystem du kører, er kopiering af en fil eller en mappe fra en placering til en anden den mest grundlæggende opgave, du udfører dagligt. På en travl dag på arbejdet, under en projektopgave i skolen eller under den igangværende udvikling af et projekt, er kopiering af filer fra lokation A til lokation B uundgåelig.
Kopiering af filer eller mapper udføres normalt ved hjælp af GUI. Linux tager sig af din vane med at arbejde på terminalen ved at levere et kommandolinjeværktøj, der giver dig mulighed for at kopiere filer eller mapper fra et sted til et andet. Bruger cp
kommando med en række muligheder giver dig frihed til at kopiere filer og mapper på flere måder.
Lad mig lede dig gennem denne artikel, hvor du vil lære om cp
kommando og måder at kopiere mapper sammen med deres indhold.
Muligheder tilgængelige med cp
kommando
Disse er de mest almindelige muligheder, der bruges med cp
kommando i forbindelse med kopiering af en mappe og alt dens indhold.
Muligheder | Beskrivelse |
-v | verbose tilstand (viser fremskridt) |
-r/R | kopiere mapper rekursivt |
-n | overskriv ikke en eksisterende fil eller mappe |
-jeg | spørg før overskrivning |
Kopier en mappe fra et sted til et andet
Lad os starte med den mest grundlæggende brug af cp
kommando. Vi vil bruge denne kommando med muligheden -r
.
Bruger -r
option sikrer, at undermapperne og filerne inde i den mappe, du kopierer, også bliver kopieret.
Syntaks:
cp -r [kildeplacering] [målsted]
Eksempel:
Jeg har to mapper inde i min nuværende arbejdsmappe kaldet 'projekt' og 'arbejdsområde'.
I dette eksempel vil jeg bruge cp -r
kommando for at kopiere mappen 'projekt' sammen med alt dets indhold til en ny placering, dvs. '/home/gaurav/workspace'. Dette betyder simpelthen, at jeg kopierer mappen med navnet 'projekt' til en mappe med navnet 'arbejdsområde'.
Dette er indholdet af mappen 'projekt'. Bruger ls
kommando for at vise indholdet.
gaurav@ubuntu:~/project$ ls -al i alt 288 drwxr-xr-x 6 gaurav gaurav 4096 17. sep 18:26. drwxr-xr-x 88 gaurav gaurav 266240 17. sep 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17. sep 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 drwxr-xr-x1 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 gaurav@temp. ubuntu:~/project$
Brug nu cp -r
kommando kan vi kopiere mappen 'projekt' til enhver ønsket placering.
gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$
Produktion:
gaurav@ubuntu:~/workspace$ ls -al i alt 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. mar 2018 .metadata drwxr-xr-x 6 gaurav gaurav 409 --1 Seurav 409 - projekt -- 1 gaurav gaurav 1535 16. september 17:13 source.c gaurav@ubuntu:~/workspace$
I outputtet ovenfor kan vi se, at mappen 'projekt' er kopieret fra den oprindelige placering til denne nye placering '/home/gaurav/workspace'. Lad os nu åbne biblioteket 'projekt' og kontrollere, om alt indholdet i det også er kopieret.
gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$
Bemærk: jeg har brugt ./
her i stedet for at gå ind på hele stien. Det betyder simpelthen, at det er min hjemmemappesti, og arbejdsområdet er placeret i mit hjem eller det nuværende arbejdsbibliotek. For mere afklaring om dette, kan du tjekke denne artikel.
Produktion:
gaurav@ubuntu:~/workspace/project$ ls -al total 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 18 dem- 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. ~/arbejdsområde/projekt$
Fra dette output kan vi konkludere, at alt indholdet af mappen 'projekt' også flyttes til den nye placering.
Kopiering af flere mapper fra et sted til et andet
For at kopiere flere mapper, cp
kommandoen kan bruges på samme måde som nævnt ovenfor. Den eneste ændring her vil være, at du bliver nødt til at indtaste de flere kildestier til de flere mapper, der skal kopieres.
Syntaks:
cp -r [kildesti_1] [kildesti_n] [destinationssti]
Lad os kontrollere denne kommando med et eksempel.
Eksempel:
gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat
Her har jeg kopieret to mapper 'snap' og 'project' fra min nuværende arbejdsmappe til en ny placering '/home/gaurav/tomcat'.
Lad os nu kontrollere, om mapperne er kopieret med deres indhold til den nye placering.
gaurav@ubuntu:~/tomcat$ ls -al i alt 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: 1
Kontrollerer om indholdet af disse mapper også er kopieret.
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 brug af cp
kommando med verbose mode
Bruger cp
kommando med muligheden -v
aktiverer den verbose tilstand. Denne funktion viser filerne på terminalen, som kopieres. Navnet på den fil eller mappe, der kopieres, vises på din terminal.
Syntaks:
cp -vr [kildemappe] [målstedssti]
Eksempel:
gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space
I dette eksempel er mappen 'apache' kopieret til en ny mappe 'space'. Jeg har brugt -v
mulighed med -r
, så alt indholdet af apache-mappen også bliver kopieret.
Produktion:
'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$
Outputtet viser den mappe, der kopieres. Den samme proces kan udføres i tilfælde af kopiering af flere filer.
Undgå at overskrive ved brug cp
kommando
Nogle gange mens du bruger cp
kommando for at kopiere flere filer eller mapper, kan du ende med at overskrive filer, der allerede er kopieret til den nye placering. For at undgå dette er det tilrådeligt at bruge -jeg
mulighed med cp
kommando. Dette vil bede dig, før du overskriver en fil eller mappe.
Syntaks:
cp -ri [kildemappesti] [målstedsti]
Bemærk: Her i den syntaks jeg har brugt -r
mulighed også. Dette vil også kopiere indholdet af mapperne. Det vil også kontrollere, om nogen af disse undermapper og filer inde i mappen bliver overskrevet.
Eksempel:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: overskriv './tomcat/snap/pycharm-community/current'?
Her forsøgte jeg at kopiere en mappe ved navn 'snap' til en ny placering. Men mappenavnet 'snap' findes allerede på den nye placering. Derfor vil jeg blive bedt om af terminalen, før jeg overskriver den eksisterende snap-mappe.
Du kan skrive 'Ja
'eller'Ingen
' som svaret på denne prompt.
I tilfælde af, at hvis du ikke bruger -jeg
mulighed, vil den eksisterende mappe blive overskrevet af den nye mappe.
Spring overskrivning af filer og mapper over med cp
kommando
Vi kan bruge -n
mulighed for direkte at instruere terminalen i aldrig at overskrive og blot springe lignende filer og mapper over, mens du bruger cp
kommando.
Syntaks:
cp -nr [kildemappesti] [målstedsti]
Ved at bruge denne kommando kan du være sikker på, at dine filer og mapper ikke bliver overskrevet.
Eksempel:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$
Her findes mappen 'snap' allerede på målplaceringen. Derfor bruger -n
option vil sikre ikke at overskrive denne mappe.
I modsætning til -jeg
mulighed, her vil du ikke blive bedt om overskrivningen.
Konklusion
Bruger cp
kommando til at kopiere mapper og deres indhold i Linux er en nem proces. For at lære mere om cp
kommando med andre tilgængelige muligheder, kan du tjekke manualsiden ved at skrive mand cp
i din Linux-terminal.