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