Linux查找并删除与目录相关的所有符号链接

Linux查找并删除与目录相关的所有符号链接

所以,我遇到了一种情况,我创建了许多符号链接,试图让它们工作,尝试各种组合..现在我遇到了这个错误:

ls: cannot access /etc/sv/me: Too many levels of symbolic links

/service/ 或 /etc/sv/ 中没有符号链接
我能找到解决此错误的唯一方法是删除与 /service/ 或 /etc/sv/ 相关的所有符号链接,但我什至没有看到符号链接?

答案1

您可以通过一些find技巧来识别循环符号链接,试试这个:

find /path/to/search -type l -a ! \( -xtype b -o -xtype c -o -xtype d -o -xtype p -o -xtype f -o -xtype s -o -xtype l \) 2>/dev/null

这是通过过滤符号链接来实现的,然后排除符号链接目标类型是任何可能的 inode 类型的任何内容。唯一剩下的就是那些find无法确定目标类型的情况,这只发生在循环符号链接上(损坏的匹配-xtype l

答案2

符号链接不表现出“远距离作用”——作为符号链接的目标永远不会直接影响目标。

您看到的错误表明/etc, or /etc/sv, or/etc/sv/me是符号链接。找出它是哪一个并修复它。

答案3

执行时尝试使用小写-l(破折号 ell)而不是大写。-Lls

相关内容