Я пытаюсь скопировать содержимое папки в другую папку в другом каталоге с помощью терминала.
Может ли кто-нибудь предоставить мне пример синтаксиса командной строки, необходимого для достижения этой цели?
Я пытаюсь скопировать содержимое папки в другую папку в другом каталоге с помощью терминала.
Может ли кто-нибудь предоставить мне пример синтаксиса командной строки, необходимого для достижения этой цели?
Ответы:
Вы можете скопировать содержимое папки /source
в другую существующую папку /dest
с помощью команды
cp -a /source/. /dest/
-a
Вариант представляет собой усовершенствованный рекурсивный вариант, который сохраняет все атрибуты файлов, а также сохранить символические ссылки.
В .
конце исходного пути указан специальный cp
синтаксис, который позволяет копировать все файлы и папки, включая скрытые.
cp -a ~/Downloads/textext/. ~/.config/inkscape/extensions/
-p
флаг, чтобы сохранить права доступа к файлам и временные метки. cp -ap /var/www/original.com/images/. /var/www/new.com/images/
-a
уже подразумевает --preserve=all
, что шире, чем -p = --preserve=mode,ownership,timestamps
.
scp
используется для копирования по сети (через ssh
) и шифрует только канал связи, а не файлы в файловой системе назначения.
Альтернатива rsync
rsync -r source/ destination
Преимущества rsync:
После начальной синхронизации он будет копировать только те файлы, которые были изменены.
Вы можете использовать его по сети, что удобно для файлов в $ HOME, особенно для файлов конфигурации.
rsync -r source/ destination
должно быть достаточно, нет?
rync source/ dest
что очевидно, что люди должны будут настроить команду rsync для работы по своему усмотрению.
Допустим, у вас есть папка с именем folder1~
, внутри folder1 находится 1 файл с именем file1 и 2 папки с именами sub1 и sub2, в каждой из которых находятся другие файлы и папки.
Для того, чтобы скопировать все содержимое , ~/folder1
чтобы ~/new_folder1
вы использовали бы
cp -r ~/folder1/. ~/new_folder1
new_folder1
будет содержать все файлы и папки из folder1
.
cp
является командой для копирования с использованием терминала, -r
делает ее рекурсивной (т. е. текущий каталог + дополнительные каталоги внутри текущего) ~/folder1
является папкой источника, ~/new_folder1
является папкой назначения для файлов / папок внутри источника.
~/new_folder1/folder1
вместо копирования содержимого поверх.
cp -r ~/folder1/* ~/new_folder1
[root@ home]# mkdir food [root@ home]# cd food/ [root@ food]# mkdir .fruit [root@ food]# mkdir veggies [root@ food]# touch veggies/carrots [root@ food]# touch .fruit/apple [root@ food]# ls * carrots [root@ food]#
Проверьте это 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
Скопируйте каталог dir_1 и его содержимое (_files_) в каталог dir_2 :
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
Скопируйте содержимое (_files_) только dir_1 в каталог dir_2 :
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_*
_files_
является заполнителем для фактических файлов, расположенных в каталоге.
Если есть две папки: (с правом записи)
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 на том же уровне, то вы будете делать
vimal@vimal-D3H:/var/www/html/PORTAL$ cp -a ../DATA/. .
Вы должны заметить 2 точки. Последняя точка говорит, что копия здесь, в данной папке
а также
один следующий / DATA /. говорит, что все СОДЕРЖАНИЕ внутри папки DATA для копирования, а не сама папка DATA.
Если вы удалите этот трейлинг "." от / ДАННЫЕ /
тогда вся папка DATA будет скопирована в ПОРТАЛ (откуда вы копируете).