3

У меня есть каталог, скажем, "работа": ~/work/ В этом каталоге есть несколько подпапок (d1, d2 ...) и файлы в этих подпапках. Я хочу сделать резервную копию в той же папке, поэтому она будет выглядеть так: ~/ backup/work/ Однако, когда я использую cp -r ./work ./backup папка "работа" не копируется, только ее подфодеры (так что теперь это ~/ backup/ d1 ~/ backup/ d2 ...) Есть идеи, как заставить это работать? Я довольно новичок в оболочке, поэтому я что-то упустил :)

4 ответа4

2

cp не будет создавать ведущие каталоги; когда он видит путь, который не существует, он будет считать, что это будет новое имя копируемого каталога.

Попробуйте скопировать в каталог, который уже существует: сначала mkdir work , затем cp -r work backup .

1

Пытаться

rsync -avz ./work ./backup
0
[max@localhost ~]$ mkdir aaa
[max@localhost ~]$ cd aaa
[max@localhost aaa]$ touch 1 2 3
[max@localhost aaa]$ mkdir bbb
[max@localhost aaa]$ touch 3 4 5
[max@localhost aaa]$ cd

Это содержание каталога aaa

[max@localhost ~]$ ls -l aaa/
total 4
-rw-rw-r-- 1 max max    0 Oct 19 17:29 1
-rw-rw-r-- 1 max max    0 Oct 19 17:29 2
-rw-rw-r-- 1 max max    0 Oct 19 17:29 3
-rw-rw-r-- 1 max max    0 Oct 19 17:29 4
-rw-rw-r-- 1 max max    0 Oct 19 17:29 5
drwxrwxr-x 2 max max 4096 Oct 19 17:29 bbb

Чтобы скопировать любой каталог, используйте команду cp -r или cp -R или cp --recursive

Здесь -r , -R , --recursive означает рекурсивное копирование каталогов

[max@localhost ~]$ cp -r aaa/ ccc/
[max@localhost ~]$ cd ccc/
[max@localhost ccc]$ ls -l
total 4
-rw-rw-r--  1 max max    0 Oct 19 17:30 1
-rw-rw-r--  1 max max    0 Oct 19 17:30 2
-rw-rw-r--  1 max max    0 Oct 19 17:30 3
-rw-rw-r--  1 max max    0 Oct 19 17:30 4
-rw-rw-r--  1 max max    0 Oct 19 17:30 5
drwxrwxr-x  2 max max 4096 Oct 19 17:30 bbb

Здесь содержимое каталога aaa копируется в каталог ccc включая файлы и содержимое подкаталога.

0
cp -r ./work/ ./backup/

или же

cp -r ./work ./backup/work

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .