Як скопіювати каталог та його вміст у Linux

Використовуйте команду «cp», щоб скопіювати та вставити цілі каталоги з одного місця в інше

Незалежно від того, яку операційну систему ви використовуєте, копіювання одного файлу або папки з одного місця в інше є найпростішим завданням, яке ви виконуєте щодня. Під час напруженого робочого дня, під час виконання проектного завдання в школі або під час поточної розробки проекту копіювання файлів з місця А в місце Б неминуче.

Копіювання файлів або папок зазвичай виконується за допомогою графічного інтерфейсу. Linux подбає про вашу звичку працювати на терміналі, надаючи утиліту командного рядка, яка дозволяє копіювати файли або папки з одного місця в інше. Використання cп Команда з різними параметрами дає вам свободу копіювати файли та папки різними способами.

Дозвольте мені провести вас через цю статтю, де ви дізнаєтеся про cп команду та способи копіювання каталогів разом із їх вмістом.

Доступні варіанти з cп команда

Це найпоширеніші варіанти, які використовуються з cп команду в контексті копіювання каталогу та всього його вмісту.

ПараметриОпис
-vдокладний режим (показує прогрес)
-r/Rрекурсивно копіювати каталоги
-nне перезаписувати наявний файл або папку
підказувати перед перезаписом

Скопіюйте каталог з одного місця в інше

Почнемо з найпростішого використання cп команда. Ми будемо використовувати цю команду з опцією -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 17 вересня 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 17 вересня 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 Sep 4096 Sep 18:25 -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 17 вересня 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22 березня 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 Sep 4096-18-18 -- 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 gaurav 4096 drw8x 17 вер: 2xr-dem 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.cu:u ~/робоча область/проект$ 

З цього результату ми можемо зробити висновок, що весь вміст каталогу «project» також переміщено в нове місце.

Копіювання кількох каталогів з одного місця в інше

Щоб скопіювати кілька каталогів, cп команду можна використовувати так само, як зазначено вище. Єдина зміна тут полягатиме в тому, що вам потрібно буде ввести кілька вихідних шляхів для кількох каталогів, які потрібно скопіювати.

Синтаксис:

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 19 вересня 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 19 вересня 12:16 проект drwxr-xr-x 7 gaurav gaurav 4096 snap 19 вер: 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$

Використання cп команда з докладним режимом

Використання cп команда з опцією -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:~$

У виводі відображається каталог, який копіюється. Такий же процес можна виконати у випадку копіювання кількох файлів.

Уникайте перезапису під час використання cп команда

Іноді під час використання cп Щоб скопіювати декілька файлів або папок, ви можете перезаписати файли, які вже скопійовані в нове місце. Щоб уникнути цього, бажано використовувати варіант з cп команда. Це підказує вам, перш ніж перезаписувати будь-який файл або папку.

Синтаксис:

cp -ri [шлях_до каталогу_джерела] [шлях_цільового_розташування]

Примітка: Тут, у синтаксисі, який я використав -r також варіант. Це також скопіює вміст каталогів. Він також перевірить, чи перезаписуються будь-які з цих підпапок і файлів у каталозі.

приклад:

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

Тут я спробував скопіювати каталог під назвою «snap» в нове місце. Але ім’я каталогу ‘snap’ вже існує в новому місці. Таким чином, термінал буде підказувати мені, перш ніж перезаписувати існуючий каталог знімків.

Ви можете ввести «Так«або»Немає“ як відповідь на цю підказку.

На випадок, якщо ви не використовуєтеваріант, існуючий каталог буде перезаписаний новим каталогом.

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

Ми можемо використовувати -n можливість безпосередньо вказувати терміналу ніколи не перезаписувати і просто пропускати подібні файли та каталоги під час використання cп команда.

Синтаксис:

cp -nr [шлях_до каталогу_джерела] [шлях_цільового_розташування]

Використовуючи цю команду, ви можете бути впевнені, що ваші файли та папки не будуть перезаписані.

приклад:

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

Тут "прив'язка" каталогу вже існує в цільовому місці. Отже, використовуючи -n Опція гарантує, що цей каталог не буде перезаписаний.

На відміну від варіант, тут вам не буде запропоновано перезапис.

Висновок

Використання cп Команда для копіювання каталогів та їх вмісту в Linux є простим процесом. Щоб дізнатися більше про cп з іншими доступними параметрами, ви можете переглянути сторінку посібника, ввівши людина кп у вашому терміналі Linux.

Категорія: Linux