Ich befinde mich in einer kleinen Situation: Ich habe viele symbolische Links erstellt, um sie zum Laufen zu bringen, und dabei alle möglichen Kombinationen ausprobiert. Jetzt habe ich diesen Fehler:
ls: cannot access /etc/sv/me: Too many levels of symbolic links
Es gibt keine symbolischen Links in /service/ oder /etc/sv/.
Die einzige Möglichkeit, diesen Fehler zu beheben, besteht für mich darin, alle symbolischen Links zu entfernen, die sich auf /service/ oder /etc/sv/ beziehen. Aber ich sehe die symbolischen Links nicht einmal?
Antwort1
Mit ein wenig find
Trickserei können Sie zyklische symbolische Links identifizieren. Versuchen Sie Folgendes:
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
Dies funktioniert, indem nach Symlinks gefiltert wird und dann alles ausgeschlossen wird, bei dem der Zieltyp des Symlinks einer der möglichen Inode-Typen ist. Übrig bleiben nur diejenigen, bei denen der find
Zieltyp nicht bestimmt werden kann, was nur bei zyklischen Symlinks der Fall ist (unterbrochene Symlinks passen -xtype l
).
Antwort2
Symlinks weisen keine „Fernwirkung“ auf – das Ziel eines Symlinks zu sein, wirkt sich nie direkt auf das Ziel aus.
Der angezeigte Fehler weist darauf hin, dass entweder /etc
, oder /etc/sv
, oder /etc/sv/me
ein symbolischer Link ist. Finden Sie heraus, welcher es ist, und beheben Sie das Problem.
Antwort3
Versuchen Sie , bei der Eingabe Kleinbuchstaben -l
(Bindestrich, ell) anstelle von Großbuchstaben zu verwenden .-L
ls