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

440

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

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

    
задан pandisvezia 11.12.2011 в 02:19
источник

5 ответов

654

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

cp -a /source/. /dest/

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

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

    
ответ дан enzotib 11.12.2011 в 13:01
88

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

rsync -r source/ destination

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

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

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

ответ дан Panther 11.12.2011 в 04:59
51

Допустим, у вас есть папка с именем folder1 в вашем ~ , внутри folder1 - 1 файл с именем file1 и 2 папки с именем < em> sub1 и sub2 с другими файлами и папками внутри них.

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

cp -r ~/folder1/. ~/new_folder1

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

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

    
ответ дан Bruno Pereira 11.12.2011 в 02:23
10

Обратитесь к ссылке за дополнительной информацией о копировании папки. Надеюсь, это поможет.

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.11.2014 в 06:53
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 09.09.2015 в 12:39