Как скопировать содержимое папки в другую папку в другой папке с помощью терминала?

Я пытаюсь скопировать содержимое папки в другую папку в другом каталоге с помощью терминала.

Может ли кто-нибудь предоставить мне пример синтаксиса командной строки, необходимого для этого?

508 голосов | спросил pandisvezia 11 SunEurope/Moscow2011-12-11T05:19:37+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 05:19:37 +0400 2011, 05:19:37

5 ответов


771

Вы можете скопировать содержимое папки /source в другую существующую папку /dest с помощью команды

cp -a /source/. /dest/

Параметр -a - это улучшенная рекурсивная опция, которая сохраняет все атрибуты файла, а также сохраняет символические ссылки.

. в конце исходного пути - это специальный синтаксис cp, который позволяет копировать все файлы и папки, включая скрытые.

ответил enzotib 11 SunEurope/Moscow2011-12-11T16:01:47+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 16:01:47 +0400 2011, 16:01:47
95

Альтернативным является rsync

rsync -r source/ destination

Преимущества rsync заключаются в следующем:

  1. После начальной синхронизации он копирует только файлы, которые были изменены.

  2. Вы можете использовать его по сети, удобной для файлов в $ HOME, особенно в конфигурационных файлах.

ответил Panther 11 SunEurope/Moscow2011-12-11T07:59:05+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 07:59:05 +0400 2011, 07:59:05
55

Предположим, что у вас есть папка с именем folder1 в ~, внутри folder1 есть 1 файл с именем file1 и 2 папки с именем sub1 и sub2 с другими файлами и папками внутри них.

Чтобы скопировать все содержимое ~/folder1 в ~/new_folder1, вы должны использовать

cp -r ~/folder1/. ~/new_folder1

new_folder1 будет содержать все файлы и папки из folder1.

cp - это команда для копирования с использованием терминала, -r делает это рекурсивно (так, текущий каталог + дальнейшие каталоги внутри текущего) ~/folder1 является исходной папкой, ~/new_folder1 является папкой назначения для файлов /папок внутри источника.

ответил Bruno Pereira 11 SunEurope/Moscow2011-12-11T05:23:39+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 05:23:39 +0400 2011, 05:23:39
13

Проверьте http://www.cyberciti.biz/faq /copy-folder-linux-command-line / для получения дополнительной информации о копировании папки. Надеюсь, это поможет.

cp Command

cp - это команда Linux для копирования файлов и каталогов. Синтаксис выглядит следующим образом:

cp source destination
cp dir1 dir2
cp -option  source destination
cp -option1 -option2  source destination

В этом примере скопируйте папку /home/vivek/letters и все ее файлы в каталог /usb/backup:

cp -avr /home/vivek/letters /usb/backup

Где

-a: сохранить указанные атрибуты, такие как каталог, режим файла, собственность, временные метки, если возможно дополнительные атрибуты: контекст, ссылки, xattr, все.

-v: Объясните, что делается.

-r: копировать каталоги рекурсивно. Пример

Скопируйте папку с именем /tmp /conf в /tmp /backup:

$ cp -avr /tmp/conf/ /tmp/backup
ответил Dilip Rajkumar 25 22014vEurope/Moscow11bEurope/MoscowTue, 25 Nov 2014 08:53:04 +0300 2014, 08:53:04
2

Если есть две папки: (с разрешением на запись)

drwxr-xr-x 4 vimal vimal  4096 Sep  9 12:17 .
drwxr-xr-x 3 root  root   4096 Aug 18 14:35 ..
drwxrwxrwx 6 vimal vimal  4096 Sep  9 12:15 DATA
drwxrwxrwx 7 vimal vimal  4096 Sep  9 12:15 PORTAL

Если вы находитесь в папке PORTAL, где вы хотите скопировать все содержимое другой папки, скажите DATA на том же уровне то вы будете делать

[email protected]:/var/www/html/PORTAL$ cp -a ../DATA/. .

Вы должны заметить 2 точки. Последняя точка указывает копию здесь в текущей папке

и

одно следующее /DATA /. говорит, что все содержимое внутри папки DATA будет скопировано, а не сама папка DATA.

Если вы удалите этот трейлинг "." из /DATA /

, тогда вся папка DATA будет скопирована внутри PORTAL (откуда вы справляетесь).

ответил vimal krishna 9 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 09 Sep 2015 13:39:20 +0300 2015, 13:39:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132