Как скопировать целый каталог в другой каталог с помощью команды cp в оболочке Linux?

Как скопировать целый каталог в другой каталог с помощью команды cp в оболочке Linux?

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

решение1

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

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

решение2

Пытаться

rsync -avz ./work ./backup

решение3

cp -r ./work/ ./backup/

или

cp -r ./work ./backup/work

решение4

Если вы используете систему Linux:

cp -rT --parents work backup/work

Связанный контент