cp:检测到周期:

时间:2010-01-28 06:41:55

标签: solaris

有关cp:cycle检测到的任何想法:Solaris上的错误。我正在将数据从一个目录复制到另一个目录。

2 个答案:

答案 0 :(得分:5)

进行递归复制时,循环访问同一个“文件”两次。这可能是由循环设置的链接引起的。例如,如果您创建目录level1

mkdir level1

然后象征性地将下的文件链接到该目录:

cd level1
ln -s . level2

你基本上最终会得到一个循环引用。这意味着你可以这样做:

cd level2/level2/level2/...

关注您的内容,永远不要离开level1目录。这会导致递归副本出现问题,因为它会无限循环。

您可以使用cp -rHcp -rP(我认为在Solaris 10及更高版本上)不遵循符号链接。

具体来说,您可能会对以下三个标志感兴趣:

  • -H:如果source_file操作数是符号链接,则cp复制source_file操作数的符号链接引用的文件。在遍历文件层次结构期间遇到的所有其他符号链接都将保留。这意味着如果您指定为源的文件/目录是链接,它将复制该链接的目标。不会遵循该来源下面的所有符号链接。

  • -L:复制符号链接引用的文件。不保留在遍历文件层次结构期间遇到的符号链接。这将遵循源下的所有符号链接。

  • -P:复制符号链接。在遍历文件层次结构期间遇到的符号链接将被保留。我认为这与-H相同,但也保留了特定来源的符号链接。

答案 1 :(得分:0)

尝试使用cp命令,如下所示:

cp -rH