注册

Linux报 “too many levels of symbolic links” 异常的原因以及解决办法

当一个文件或目录有太多的符号链接(symbolic link)指向它时,就可能出现 "too many levels of symbolic links" 错误。这个错误是由于符号链接嵌套的层数太多,导致类似死循环的错误。

以下是示例代码:

$ mkdir test
$ cd test
$ ln -s . link
$ cd link
$ ln -s ../ link
$ cd link
$ ln -s ../ link
$ cd link
$ ln -s ../ link
$ cd link 
$ ls

在这个示例中,我们在 test 目录下,创建了 link 目录,然后在 link 目录里又创建了一个 link 目录,如此嵌套了三层。当我们进入 link 目录并运行 ls 命令时,就会出现 "too many levels of symbolic links" 错误。

要解决这个问题,我们需要找出符号链接嵌套的原因,然后通过删除多余的符号链接改变目录结构。

例如,在上面的示例中,我们可以通过删除一个 link 目录来修复这个问题,命令如下:

$ rm link/link

会删除 test/link/link 目录,因此 link 目录下只保留一个符号链接,从而解决了 "too many levels of symbolic links" 错误。

总而言之,当出现 "too many levels of symbolic links" 错误时,我们需要检查目录结构,判断符号链接是否嵌套过多,然后删除多余的符号链接以解决问题。