Använd kommandot "cp" för att kopiera och klistra in hela kataloger från en plats till en annan
Oavsett vilket operativsystem du kör, är kopiering av en fil eller en mapp från en plats till en annan den mest grundläggande uppgiften du utför dagligen. Under en hektisk dag på jobbet, under en projektuppgift i skolan eller under den pågående utvecklingen av ett projekt är det oundvikligt att kopiera filer från plats A till plats B.
Kopiering av filer eller mappar görs vanligtvis med hjälp av GUI. Linux tar hand om din vana att arbeta på terminalen genom att tillhandahålla ett kommandoradsverktyg som låter dig kopiera filer eller mappar från en plats till en annan. Använda cp
kommando med en mängd olika alternativ ger dig friheten att kopiera filer och mappar på flera sätt.
Låt mig gå igenom den här artikeln där du kommer att lära dig om cp
kommandot och sätten att kopiera kataloger tillsammans med deras innehåll.
Alternativ tillgängliga med cp
kommando
Dessa är de vanligaste alternativen som används med cp
kommando i samband med kopiering av en katalog och allt dess innehåll.
alternativ | Beskrivning |
-v | verbose läge (visar framsteg) |
-r/R | kopiera kataloger rekursivt |
-n | skriv inte över en befintlig fil eller mapp |
-jag | fråga innan du skriver över |
Kopiera en katalog från en plats till en annan
Låt oss börja med den mest grundläggande användningen av cp
kommando. Vi kommer att använda det här kommandot med alternativet -r
.
Använda -r
alternativet säkerställer att undermappar och filer i katalogen du kopierar också kommer att kopieras.
Syntax:
cp -r [källa_plats] [målplats]
Exempel:
Jag har två kataloger i min nuvarande arbetskatalog som heter "projekt" och "arbetsyta".
I det här exemplet kommer jag att använda cp -r
kommando för att kopiera katalogen "projekt" tillsammans med allt dess innehåll till en ny plats, dvs. "/home/gaurav/workspace". Detta betyder helt enkelt att jag kopierar katalogen som heter 'projekt' till en katalog som heter 'arbetsyta'.
Detta är innehållet i katalogen "projekt". Använda ls
kommando för att visa dess innehåll.
gaurav@ubuntu:~/project$ 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 4096 drwxr-xr-x -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$
Nu använder du cp -r
kommando kan vi kopiera katalogen "projekt" till valfri plats.
gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$
Produktion:
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 --1 project -- 1 gaurav gaurav 1535 16 september 17:13 source.c gaurav@ubuntu:~/workspace$
I utgången ovan kan vi se att katalogen 'projekt' kopieras från den ursprungliga platsen till denna nya plats '/home/gaurav/workspace'. Låt oss nu öppna katalogen "projekt" och kontrollera om allt innehåll i den också är kopierat.
gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$
Notera: jag har använt ./
här istället för att gå in på hela vägen. Det betyder helt enkelt att det är min hemkatalogssökväg och arbetsytan finns i mitt hem- eller nuvarande arbetskatalog. För mer förtydligande om detta kan du kolla in den här artikeln.
Produktion:
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 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@ubuntu gaurav@temp. ~/arbetsyta/projekt$
Från denna utdata kan vi dra slutsatsen att allt innehåll i katalogen "projekt" också flyttas till den nya platsen.
Kopiera flera kataloger från en plats till en annan
För att kopiera flera kataloger, cp
kommandot kan användas på samma sätt som nämnts ovan. Den enda ändringen här kommer att vara att du måste ange de flera källsökvägarna för de flera katalogerna som ska kopieras.
Syntax:
cp -r [källa_sökväg_1] [källa_sökväg_n] [destinationssökväg]
Låt oss kontrollera detta kommando med ett exempel.
Exempel:
gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat
Här har jag kopierat två kataloger "snap" och "project" från min nuvarande arbetskatalog till en ny plats "/home/gaurav/tomcat".
Låt oss nu kontrollera om katalogerna är kopierade med deras innehåll till den nya platsen.
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: 1
Kontrollera om innehållet i dessa kataloger också kopieras.
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$
Använder sig av cp
kommando med verbose läge
Använda cp
kommando med alternativet -v
aktiverar det verbose läget. Denna funktion visar filerna på terminalen som kopieras. Namnet på filen eller mappen som kopieras visas på din terminal.
Syntax:
cp -vr [källa_katalog] [sökväg_målplats]
Exempel:
gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space
I det här exemplet kopieras katalogen 'apache' till en ny mapp 'space'. Jag har använt -v
alternativ med -r
, så att allt innehåll i apache-katalogen också kopieras.
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:~$
Utdatan visar katalogen som kopieras. Samma process kan göras vid kopiering av flera filer.
Undvik att skriva över vid användning cp
kommando
Ibland när du använder cp
kommandot för att kopiera flera filer eller mappar, kan det sluta med att du skriver över filer som redan är kopierade till den nya platsen. För att undvika detta är det lämpligt att använda -jag
alternativet med cp
kommando. Detta kommer att fråga dig innan någon fil eller mapp skrivs över.
Syntax:
cp -ri [källa_katalogsökväg] [sökväg_målplats]
Notera: Här, i den syntax jag har använt -r
alternativ också. Detta kommer att kopiera innehållet i katalogerna också. Det kommer också att kontrollera om någon av dessa undermappar och filer i katalogen skrivs över.
Exempel:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: skriva över './tomcat/snap/pycharm-community/current'?
Här försökte jag kopiera en katalog som heter "snap" till en ny plats. Men katalognamnet "snap" finns redan på den nya platsen. Därför kommer jag att bli tillfrågad av terminalen innan jag skriver över den befintliga snap-katalogen.
Du kan skriva 'Ja
'eller'Nej
' som svaret på denna uppmaning.
I fallet, om du inte använder -jag
alternativet kommer den befintliga katalogen att skrivas över av den nya katalogen.
Hoppa över överskrivning av filer och kataloger med cp
kommando
Vi kan använda -n
alternativet att direkt instruera terminalen att aldrig skriva över och helt enkelt hoppa över liknande filer och kataloger medan du använder cp
kommando.
Syntax:
cp -nr [källa_katalogsökväg] [sökväg_målplats]
Med detta kommando kan du vara säker på att dina filer och mappar inte kommer att skrivas över.
Exempel:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$
Här finns katalogen "snap" redan på målplatsen. Därför använder -n
alternativet säkerställer att den här katalogen inte skrivs över.
Till skillnad från -jag
alternativet, här kommer du inte att bli tillfrågad om överskrivningen.
Slutsats
Använda cp
kommandot för att kopiera kataloger och deras innehåll i Linux är en enkel process. För att lära dig mer om cp
kommando med andra tillgängliga alternativ kan du kolla in manualsidan genom att skriva man cp
i din Linux-terminal.