Ответы:
Вы используете -r(копировать рекурсивно) и указываете новое имя
cp -r /path/to/directory /path/to/location/new-name
заменить реальными путями ... например, скопировать stuffиз моего домашнего каталога в существующий каталог backupи дать имя новому каталогу stuff-backup(если этот каталог уже существует, обратите внимание, что stuffон будет скопирован в него, а не перезаписывается).
cp -r ~/stuff ~/backup/stuff-backup
~это ярлык для вашего домашнего каталога /home/$USERили /home/zannaв моем случае. Вы можете опустить его, если текущим рабочим каталогом является ваш домашний каталог - вы можете увидеть это в приглашении
zanna@monster:~$
^--the ~ here is where I am - home!
Вы можете добавить -vподробный флаг, чтобы сделать cpотчет о каждой выполняемой копии ...
$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...
-vили --verboseфлаг :)
Команда, которая вам нужна, просто cpозначает «копировать».
Вы можете использовать его, например, с одним из следующих синтаксисов:
cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY
Первый вариант позволяет указать новое имя файла для целевого файла, а второй вариант создает копию с тем же именем в целевом каталоге. Конечно, вы должны сначала заменить заполнители заглавными буквами действительными путями.
Однако cpпо умолчанию работает только с файлами, а не с каталогами. Чтобы заставить его скопировать полный каталог со всем его содержимым рекурсивно, вы должны добавить -rопцию:
cp -r SOURCEDIRECTORY TARGETDIRECTORY
Вы можете узнать больше о cpкоманде, набрав man cpв своем терминале.
В качестве альтернативы обычно полезной команде cp вы можете использовать rsync, который имеет дополнительное преимущество репликации разрешений / временных меток исходной структуры каталогов:
rsync -av dir/ newdir
-a архив -v многословный
обратите внимание на косую черту после исходного каталога.
Мне легче перейти в каталог, из которого я сначала копирую. Для этого примера перейдите в каталог, который каждый вызвал /boot. Любой может скопировать и вставить команды ниже в свой терминал.
cd /boot
sudo mkdir /boot_backup
sudo cp -r . /boot_backup
du /boot_backup -h
752K /boot_backup/extlinux/themes/debian-wheezy
756K /boot_backup/extlinux/themes
832K /boot_backup/extlinux
2.5M /boot_backup/grub/i386-pc
20K /boot_backup/grub/locale
2.3M /boot_backup/grub/fonts
7.2M /boot_backup/grub
565M /boot_backup
Для cpкоманды текущий каталог определяется как , .который является /bootкаталог , мы изменили в. -rОпция позволяет рекурсивной включать все подкаталоги.
Чтобы убедиться, что это работает, запустите duсписок всех подкаталогов и общие размеры файлов в новом каталоге /boot_backupв этом случае.
По завершении этого пошагового sudo rm -r /boot_backupруководства используйте: для удаления нового каталога и его подкаталогов.
cp -r), которые позаботятся о создании нового каталога и копировании всех файлов в него
cp -rкак вы рекомендуете уже в третьей командной строке. Учебное пособие основано на том факте, что у каждого есть /bootкаталог, и он может попробовать это на своем компьютере. Если бы я использовал, cp -r /home/GroundZero/Documents /home/GroundZero/Documents_backupчитатели не могли бы копировать и вставлять в свой терминал - у них были бы изменения, GroundZeroсоздающие больше работы и шансов на ошибку. Я надеюсь, что вы оцените ПОЦЕЛУЙ этого ответа со встроенным учебником.
cd ~/Documents/SomeObsucreFolder/2016/Nov/для установки текущего каталога в качестве исходного каталога, изменит подсказку терминала, чтобы убедиться, что оно написано правильно, а затем использование cp -r .в качестве источника устраняет повторный ввод исходного каталога. Это просто то, что я считаю хорошей привычкой. Кроме того , как только изменения в исходный каталог , это легко сделать ls FIleName1, ls FileName2и т.д. , чтобы esnure файлов , которые вы хотите сделать резервную копию там без необходимости повторять имя исходного каталога для lsкоманды.
Вы можете использовать приведенную ниже команду для копирования каталога из одного места в другое.
cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/
Объяснение команды:
cpэто команда, которая выполняет функцию, которую вы ищете. Это означает копирование, и оно делает именно это. Команда, которая будет работать для вас в этой ситуации,
cp -R source/ destination/
Это скопирует source/папку и все ее подкаталоги в destination/.
Если destination/не существует, он будет создан.
-RФлаг означает рекурсивный, который говорит , cpчтобы скопировать все подкаталоги.