复制目录+重命名

Pie*_*rre 6 cp

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

path1/dir1
Run Code Online (Sandbox Code Playgroud)

path2/dir2
Run Code Online (Sandbox Code Playgroud)

我第一次调用

cp -r path1/dir1 path2/dir2
Run Code Online (Sandbox Code Playgroud)

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

ls path2/dir2
Run Code Online (Sandbox Code Playgroud)

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

ls path2/dir2/dir1
Run Code Online (Sandbox Code Playgroud)

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

Gra*_*eme 7

使用-Tcp (GNU cp)选项:

cp -rT path2/dir2 path1/dir1
Run Code Online (Sandbox Code Playgroud)

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

rsync -r path1/dir1/ path2/dir2
Run Code Online (Sandbox Code Playgroud)