Как скопировать каталог и его содержимое в Linux

Используйте команду «cp», чтобы скопировать и вставить целые каталоги из одного места в другое.

Независимо от того, в какой операционной системе вы работаете, копирование одного файла или папки из одного места в другое - самая простая задача, которую вы выполняете ежедневно. В напряженный рабочий день, во время выполнения задания в школе или во время текущей разработки проекта копирование файлов из местоположения A в местоположение B неизбежно.

Копирование файлов или папок обычно выполняется с помощью графического интерфейса. Linux позаботится о вашей привычке работать на терминале, предоставив утилиту командной строки, которая позволяет копировать файлы или папки из одного места в другое. С помощью cp Команда с множеством опций дает вам свободу копировать файлы и папки множеством способов.

Позвольте мне познакомить вас с этой статьей, в которой вы узнаете о cp команда и способы копирования каталогов вместе с их содержимым.

Опции доступны с cp команда

Это наиболее распространенные варианты, используемые с cp команда в контексте копирования каталога и всего его содержимого.

ОпцииОписание
-vподробный режим (показывает прогресс)
-r / Rкопировать каталоги рекурсивно
-nне перезаписывать существующий файл или папку
подскажите перед перезаписью

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

Начнем с самого простого использования cp команда. Мы будем использовать эту команду с опцией .

С помощью Эта опция гарантирует, что подпапки и файлы внутри каталога, который вы копируете, также будут скопированы.

Синтаксис:

cp -r [исходное_расположение] [целевое_расположение]

Пример:

В моем текущем рабочем каталоге есть два каталога, которые называются «проект» и «рабочая область».

В этом примере я буду использовать cp -r , чтобы скопировать каталог «проект» вместе со всем его содержимым в новое место, то есть «/ home / gaurav / workspace». Это просто означает, что я копирую каталог с именем «проект» в каталог с именем «рабочая область».

Это содержимое каталога «проект». С помощью ls команда для отображения ее содержимого.

gaurav @ ubuntu: ~ / project $ ls -al всего 288 drwxr-xr-x 6 gaurav gaurav 4096 17 сен, 18:26. drwxr-xr-x 88 gaurav gaurav 266240 17 сен 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17 сен 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 17 сен 18:25 dem2 drwxr-xr -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 temp.c gaurav @ убунту: ~ / проект $

Теперь, используя 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 17 сен 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22 марта 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 17 сен 18:27 проект -rw-r - r - 1 gaurav gaurav 1535, 16 сентября, 17:13 source.c gaurav @ ubuntu: ~ / workspace $ 

В выходных данных выше мы видим, что каталог «project» скопирован из исходного местоположения в это новое местоположение «/ home / gaurav / workspace». Теперь давайте откроем каталог «проект» и проверим, все ли содержимое внутри него также скопировано.

gaurav @ ubuntu: ~ $ cd ./workspace/project gaurav @ ubuntu: ~ / рабочая область / проект $

Примечание: я использовал ./ здесь вместо того, чтобы вводить полный путь. Это просто означает, что это путь к моему домашнему каталогу, а рабочая область находится в моем домашнем или текущем рабочем каталоге. Для получения дополнительных разъяснений по этому поводу вы можете ознакомиться с этой статьей.

Вывод:

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 gaurav 4096 17 сен 18:27 dem2 drwxr-xr-x 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 @ ubuntu: ~ / рабочая область / проект $ 

Из этого вывода мы можем сделать вывод, что все содержимое каталога «проект» также перемещено в новое место.

Копирование нескольких каталогов из одного места в другое

Чтобы скопировать несколько каталогов, cp можно использовать так же, как указано выше. Единственное изменение здесь будет заключаться в том, что вам нужно будет ввести несколько исходных путей для нескольких копируемых каталогов.

Синтаксис:

cp -r [исходный_путь_1] [исходный_путь_n] [целевой_путь]

Давайте проверим эту команду на примере.

Пример:

gaurav @ ubuntu: ~ / рабочая область $ cp -r ./snap ./project / home / gaurav / tomcat

Здесь я скопировал два каталога «snap» и «project» из моего текущего рабочего каталога в новое место «/ home / gaurav / tomcat».

Теперь давайте проверим, скопированы ли каталоги с их содержимым в новое место.

gaurav @ ubuntu: ~ / tomcat $ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 19 сен, 12:16. drwxr-xr-x 88 gaurav gaurav 266240 19 сен 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 19 сен 12:16 проект drwxr-xr-x 7 gaurav gaurav 4096 19 сен 12:16 snap

Проверка, копируется ли также содержимое этих каталогов.

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 $.

С использованием cp команда с подробным режимом

С помощью cp команда с опцией -v включает подробный режим. Эта функция отображает файлы на терминале, которые копируются. Имя копируемого файла или папки отображается на вашем терминале.

Синтаксис:

cp -vr [исходный_каталог] [целевой_каталог]

Пример:

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

В этом примере каталог «apache» копируется в новую папку «пространство». Я использовал -v вариант с , так что все содержимое каталога 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: ~ $

На выходе отображается каталог, который копируется. Тот же процесс можно проделать в случае копирования нескольких файлов.

Избегайте перезаписи при использовании cp команда

Иногда при использовании cp команда для копирования нескольких файлов или папок, вы можете в конечном итоге перезаписать файлы, которые уже скопированы в новое место. Чтобы избежать этого, рекомендуется использовать вариант с cp команда. Это запросит вас перед перезаписью любого файла или папки.

Синтаксис:

cp -ri [исходный_каталог_путь] [целевой_каталог_путь]

Примечание: Здесь в синтаксисе, который я использовал вариант тоже. Это также скопирует содержимое каталогов. Он также проверит, не перезаписываются ли какие-либо из этих подпапок и файлов внутри каталога.

Пример:

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

Здесь я попытался скопировать каталог с именем «snap» в новое место. Но каталог с именем «snap» уже существует в новом месте. Следовательно, я получу запрос от терминала перед перезаписью существующего каталога оснастки.

Вы можете ввести ‘да' или 'Нет‘Как ответ на это приглашение.

В случае, если вы не используетевариант, существующий каталог будет заменен новым каталогом.

Пропустить перезапись файлов и каталогов с помощью cp команда

Мы можем использовать -n возможность напрямую указать терминалу никогда не перезаписывать и просто пропускать похожие файлы и каталоги при использовании cp команда.

Синтаксис:

cp -nr [исходный_каталог_путь] [целевой_каталог_путь]

Используя эту команду, вы можете быть уверены, что ваши файлы и папки не будут перезаписаны.

Пример:

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

Здесь каталог snap уже существует в целевом расположении. Следовательно, используя -n опция гарантирует, что этот каталог не будет перезаписан.

в отличие вариант, здесь вам не будет предлагаться перезапись.

Вывод

С помощью cp Команда для копирования каталогов и их содержимого в Linux - простой процесс. Чтобы узнать больше о cp с другими доступными параметрами, вы можете проверить страницу руководства, набрав человек cp в вашем Linux-терминале.

Категория: Linux