Too many levels of symbolic links到底是什么原因?

kongchao1 kongchao1 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
当link操作的源文件和目标文件不在同一目录路径下时,有时会出现这个问题。
网上说的无非是使用绝对路径而不是相对路径就好了。
我想问的是,产生这个错误的原因是什么?

在研究fstest测试代码的过程中有这样一段代码:

expect 0 symlink ${n0} ${n1}
expect 0 symlink ${n1} ${n0}
expect ELOOP unlink ${n0}/test
expect ELOOP unlink ${n1}/test
expect 0 unlink ${n0}
expect 0 unlink ${n1}

n0和n1互相链接的时候没有ELOOP错误,但是在其中之一目录下操作时就有了ELOOP错误,在linux下操作这个例子时:
ln -s n0 n1
ln -s n1 n0
unlink n0/test
就会出现:符号连接的层数过多(Too many levels of symbolic links)的错误


posix里面是这样形容ELOOP错误的:

[ELOOP] (为什么n0和n1互相链接不会报loop的错误?)
A loop exists in symbolic links encountered during resolution of the path argument.

[ELOOP] (这应该就是链接层数过多的错误情况)
More than {SYMLOOP_MAX} symbolic links were encountered during resolution of the path argument.
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
kongchao1
Linux/Unix社区 18,828 成员 11,489 内容