Итак, у меня возникла ситуация, когда я создал много символических ссылок, пытаясь заставить их работать, пробуя всевозможные комбинации... теперь у меня такая ошибка:
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
, либо /etc/sv
, либо /etc/sv/me
является символической ссылкой. Выясните, что это такое, и исправьте ее.
решение3
Попробуйте использовать строчные буквы -l
(тире, ell) вместо заглавных -L
при написании ls
.