Я пытаюсь скопировать содержимое папки в другую папку в другом каталоге, используя терминал.
Может ли кто-нибудь предоставить мне пример синтаксиса командной строки, необходимого для этого?
Вы можете скопировать содержимое папки / source
в другую существующую папку / dest
с помощью команды
cp -a /source/. /dest/
. Параметр -a
является улучшенная рекурсивная опция, которая сохраняет все атрибуты файлов, а также сохраняет символические ссылки.
.
в конце исходного пути - это особый синтаксис cp
, который позволяет копировать все файлы и е старые, включая скрытые.
Допустим, у вас есть папка с именем folder1 в вашем ~
, внутри folder1 находится 1 файл с именем file1 и 2 папки с именами sub1 и sub2 , каждая с другими файлами и папками внутри них.
Чтобы скопировать все содержимое ~ / folder1
в ~ / new_folder1
, вы должны использовать
cp -r ~/folder1/. ~/new_folder1
new_folder1
тогда будет содержать все файлы и папки из folder1
.
cp
- это команда для копирования используя терминал, -r
делает это рекурсивно (так, текущий каталог + дополнительные каталоги внутри текущего) ~ / folder1
- это исходная папка, ~ / new_folder1
- папка назначения для файлов / папок внутри источника.
Отметьте это 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 / letter
и все ее файлы в каталог / usb / backup
:
cp -avr /home/vivek/letters /usb/backup
Где,
-a
: сохранить указанные атрибуты, такие как каталог, режим файла, право собственности, временные метки, если возможно, дополнительные атрибуты: контекст, ссылки, xattr, все.
-v
: Объясните, что делается.
-r
: рекурсивное копирование каталогов.
Пример
Скопируйте папку с именем / tmp / conf в / tmp / backup:
$ cp -avr /tmp/conf/ /tmp/backup
Если есть две папки: (с разрешением на запись)
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
Если вы находитесь внутри папки с именем ПОРТАЛ, куда вы хотите скопировать все содержимое другой папки, скажите ДАННЫЕ одновременно уровень тогда вы выполните
vimal @ vimal-D3H: / var / www / html / PORTAL $ cp -a ../DATA/. .
Вы должны заметить 2 точки. Последняя точка означает копию здесь, в текущей папке
и
, одну следующую за / DATA /. говорит, что копируется все СОДЕРЖАНИЕ внутри папки DATA, а не сама папка DATA.
Если вы удалите этот завершающий "." из / DATA /
, тогда вся папка DATA будет скопирована в ПОРТАЛ (откуда вы копируете).
Альтернативный вариант - rsync
:
rsync -a source/ destination
Преимущества rsync
: :
Скопируйте каталог dir_1 и его содержимое ( файлы ) в каталог dir_2 :
cp -r ./dir_1 ./dir_2
# or
cp -r ./dir_1/ ./dir_2/
# Results in: ./dir_2/dir_1/_files_
Скопируйте только содержимое ( файлов ) каталога dir_1 в каталог dir_2 :
cp -r ./dir_1/. ./dir_2
# or
cp -r ./dir_1/. ./dir_2/
# Results in: ./dir_2/_files_
_files_
является заполнителем для фактических файлов, находящихся в каталоге.
Мне нравится эта команда
rsync -av --progress ~/code/project-source/. ~/code/project-destination --exclude .git --exclude node_modules
Некоторые из часто используемых параметров в команде rsync перечислены ниже: