在 Linux Shell 中使用 cp 命令,如何将整个目录复制到另一个目录?

在 Linux Shell 中使用 cp 命令,如何将整个目录复制到另一个目录?

我有一个目录,比如说“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

相关内容