在tcl中递归复制目录

3

当我尝试将一个目录递归复制到另一个目录时,我收到了一个错误消息。如果foo是我的源目录,bar是我的目标目录,那么我会收到以下错误:

"无法使用目录“foo”覆盖文件“bar/foo”"

我的tcl命令是:

file mkdir "bar"
file copy -force  ./foo bar

我哪里出了问题?


对我来说运行良好。你确定 foo 不是某种意外成为文件的东西,_比如符号链接_? - Andrew Cheong
我遇到这个相同的错误的唯一方式是当bar实际上是一个文件或链接(硬链接或符号链接)。 - Hai Vu
我遇到了这个错误:无法用目录“foo”覆盖文件“bar/foo”。 - Nathan Pk
1
我猜你可能在将某些东西复制到自身或覆盖自身。这样做可能会出现严重的问题,请不要这样做。 - Donal Fellows
我遇到了我在问题中提到的第二个错误。我在目标目录中找不到任何文件。 - Nathan Pk
显示剩余2条评论
1个回答

1
你可以使用 exec:
exec cp -f ./foo bar

它对我总是有效。


不要忘记使用“-r”标志来获取递归复制。我刚刚遇到了与tcl相同的问题,你的简单方法是有效的。 - EverythingRightPlace
最好是仅限 Tcl 版本。 - Xerusial

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接