再次运行 cp -r ~/.ipython ~/some/path/.ipython 会创建 ~/some/path/.ipython/.ipython。如何防止这种情况发生?

再次运行 cp -r ~/.ipython ~/some/path/.ipython 会创建 ~/some/path/.ipython/.ipython。如何防止这种情况发生?

我正在使用脚本将目录复制到指定位置。当我运行时,cp -r ~/.ipython ~/some/path/.ipython目录.ipython按预期复制到指定位置。但是当我再次运行此命令时,~/some/path/.ipython/.ipython会创建目录。

我理解这是递归的,但是哪个命令会复制一个目录,而该命令的后续调用会阻止在同一个目录中递归创建目录?

答案1

是的,正如您所注意到的,没有什么可以阻止该命令在每个其他目录中cp创建一个新目录。.ipython.ipython

如果您在重复运行的脚本中使用它,避免该问题的最佳方法不是使用cp而是rsync

rsync -vua ~/.ipython/ ~/some/path/.ipython/

/注意,路径末尾的尾随对于 来说很重要rsync。如果您正在尝试,请不要忘记添加它。

编辑:Kruug 的答案应该也能起到作用,但rsync会产生更好的性能,特别是当你重复这样做的时候。

答案2

cp -r ~/.ipython/ ~/some/path/.ipython

添加斜线,它会复制目录的内容

相关内容