我想从以下位置复制一个目录:
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
)
使用-T
cp (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)