复制目录+重命名

复制目录+重命名

我想从以下位置复制目录:

path1/dir1

path2/dir2

我第一次调用

cp -r path1/dir1 path2/dir2

没问题,dir2是在path2下创建的

ls path2/dir2

bu 第二次,dir1 是在 path2/dir2 下创建的

ls path2/dir2/dir1

我可以仅使用获得正确的行为吗cp? (= 不调用rm -f path2/dir2)

答案1

使用-Tcp (GNU cp) 选项:

cp -rT path2/dir2 path1/dir1

如果您rsync为此使用(这可能是您想要的,因为它将避免复制未更改的文件),您可以将 a 附加/到源目录,以便专门复制内容而不是目录本身。例如:

rsync -r path1/dir1/ path2/dir2

答案2

将目录“复制”到已存在的目标时,您想要的行为是不明确的。你想要_____吗

  • 只添加新文件?
  • 添加新文件并更新内容已更改的文件?
  • 添加和更新文件,以及删除目标上已从源中删除的文件?

基本上,您认为的简单复制操作实际上要复杂得多——对于cp.在所有情况下,您都希望使用该rsync命令。

相关内容