Как да копирате директория и нейното съдържание в Linux

Използвайте командата „cp“, за да копирате и поставите цели директории от едно място на друго

Без значение коя операционна система използвате, копирането на един файл или папка от едно място на друго е най-основната задача, която изпълнявате ежедневно. В натоварен работен ден, по време на проектна задача в училище или по време на текущото развитие на проект, копирането на файлове от място А на място Б е неизбежно.

Копирането на файлове или папки обикновено се извършва с помощта на GUI. Linux се грижи за вашия навик да работите на терминала, като предоставя помощна програма от командния ред, която ви позволява да копирате файлове или папки от едно място на друго. Използвайки кп команда с различни опции ви дава свободата да копирате файлове и папки по множество начини.

Позволете ми да ви преведа през тази статия, където ще научите за кп команда и начините за копиране на директории заедно с тяхното съдържание.

Налични опции с кп команда

Това са най-често използваните опции с кп команда в контекста на копиране на директория и цялото й съдържание.

НастроикиОписание
-vмногословен режим (показва напредъка)
-r/Rкопирайте директории рекурсивно
не презаписвайте съществуващ файл или папка
-iподкана преди презаписване

Копирайте директория от едно място на друго

Нека започнем с най-основната употреба на кп команда. Ще използваме тази команда с опцията -r.

Използвайки -r опция гарантира, че подпапките и файловете в директорията, която копирате, също ще бъдат копирани.

Синтаксис:

cp -r [местоположение на източника] [местоположение на целта]

пример:

Имам две директории в текущата си работна директория, наречени „проект“ и „работно пространство“.

В този пример ще използвам cp -r команда за копиране на директорията „проект“ заедно с цялото й съдържание на ново място, т.е. „/home/gaurav/workspace“. Това просто означава, че копирам директорията с име „project“ в директория с име „workspace“.

Това е съдържанието на директорията „project“. Използвайки ls команда за показване на съдържанието му.

gaurav@ubuntu:~/project$ ls -al общо 288 drwxr-xr-x 6 gaurav gaurav 4096 17 септември 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 4096 Sept 4096-xr-x -x 2 gaurav gaurav 4096 17 септември 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 септември 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 септември 17 18:26 gaurav @ temp. ubuntu:~/project$

Сега, използвайки cp -r команда можем да копираме директорията „проект“ на всяко желано място.

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

Изход:

gaurav@ubuntu:~/workspace$ ls -al общо 408 drwxrwxr-x 4 gaurav gaurav 4096 17 септември 18:27 . drwxr-xr-x 88 gaurav gaurav 266240 Sep 17 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22 март 2018 г. .metadata drwxr-xr-x 6 gaurav gaurav 409-r-18 project: -- 1 gaurav gaurav 1535, 16 септември 17:13 source.c gaurav@ubuntu:~/workspace$ 

В изхода по-горе можем да видим, че директорията „проект“ е копирана от оригиналното местоположение в това ново местоположение „/home/gaurav/workspace“. Сега нека отворим директорията „проект“ и да проверим дали цялото съдържание в нея също е копирано.

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

Забележка: използвал съм ./ тук, вместо да въвеждате пълния път. Това просто означава, че това е пътят на моята домашна директория и работното пространство се намира в моята домашна или текуща работна директория. За повече разяснения по този въпрос можете да разгледате тази статия.

Изход:

gaurav@ubuntu:~/workspace/project$ ls -al общо 28 drwxr-xr-x 6 gaurav gaurav 4096 17 септември 18:27 . drwxrwxr-x 4 gaurav gaurav 4096 17 септември 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 17 септември 18:27 dem1, drwxr-xr-x 2 gaurav гаурав 4096 гаурав 4096 dr8x 17 септември: wx 17 2 gaurav gaurav 4096 17 септември 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 септември 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 септември 17 18:27 temp.c gaurav:urav ~/работно пространство/проект$ 

От този изход можем да заключим, че цялото съдържание на директорията „проект“ също се премества на новото място.

Копиране на множество директории от едно място на друго

За да копирате няколко директории, кп командата може да се използва по същия начин, както е споменато по-горе. Единствената промяна тук ще бъде, че ще трябва да въведете множество изходни пътища на множеството директории, които да бъдат копирани.

Синтаксис:

cp -r [източник_път_1] [източник_път_n] [път на_назначение]

Нека проверим тази команда с пример.

пример:

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

Тук копирах две директории „snap“ и „project“ от текущата ми работна директория на ново местоположение „/home/gaurav/tomcat“.

Сега нека проверим дали директориите са копирани със съдържанието им на новото място.

gaurav@ubuntu:~/tomcat$ ls -al общо 9316 drwxrwxr-x 5 gaurav gaurav 4096 19 септември 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 snap 19 Sep: 19

Проверка дали съдържанието на тези директории също е копирано.

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$

Използвайки кп команда с многословен режим

Използвайки кп команда с опцията -v активира подробния режим. Тази функция показва файловете на терминала, които се копират. Името на файла или папката, които се копират, се показва на вашия терминал.

Синтаксис:

cp -vr [източна_директория] [пътя на целево_местоположение]

пример:

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

В този пример директорията „apache“ се копира в нова папка „space“. Използвал съм -v опция с -r, така че цялото съдържание на директорията на apache също да бъде копирано.

Изход:

'./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 опция с кп команда. Това ще ви подкани, преди да презапишете всеки файл или папка.

Синтаксис:

cp -ri [пътя_изходна_директория] [пътя_на_целево_местоположение]

Забележка: Тук, в синтаксиса, който използвах -r опция също. Това също ще копира съдържанието на директориите. Той също така ще провери дали някоя от тези подпапки и файлове в директорията се презаписва.

пример:

gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: презаписване './tomcat/snap/pycharm-community/current'?

Тук се опитах да копирам директория с име „snap“ на ново място. Но името на директорията „snap“ вече съществува на новото място. Следователно терминалът ще ме подкани, преди да презапиша съществуващата директория на snap.

Можете да напишете ‘да' или 'Не“ като отговор на тази подкана.

В случай, че не използвате -i опция, съществуващата директория ще бъде презаписана от новата директория.

Пропуснете презаписването на файлове и директории с кп команда

Можем да използваме опция за директно инструктиране на терминала никога да не презаписва и просто да пропуска подобни файлове и директории, докато използвате кп команда.

Синтаксис:

cp -nr [пътека_изходна_директория] [пътя_на_целево_местоположение]

С помощта на тази команда можете да сте сигурни, че вашите файлове и папки няма да бъдат презаписани.

пример:

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

Тук директорията „snap“ вече съществува на целевото място. Следователно, използвайки опцията ще гарантира, че няма да се презапише тази директория.

За разлика от -i опция, тук няма да бъдете подканени за презаписването.

Заключение

Използвайки кп команда за копиране на директории и тяхното съдържание в Linux е лесен процес. За да научите повече за кп команда с други налични опции, можете да разгледате страницата с ръководството, като напишете мъж к.п във вашия Linux терминал.

Категория: Linux