Tecnología · GUÍA PRÁCTICA
¿“Too many levels of symbolic links”? Encuentre el componente que se repite antes de cambiar la ruta
Separe un ciclo real de una cadena de más de 40 recorridos, siga cada componente, identifique al propietario y cambie solo el enlace probado.

Linux devuelve ELOOP, “Too many levels of symbolic links”, cuando la resolución de una ruta supera su límite de enlaces. Un ciclo directo o indirecto es una causa; una cadena sin ciclo que exige más de 40 recorridos es otra. El mensaje no identifica el primer componente incorrecto.
Conserve el llamador, el directorio de trabajo y la ruta sin resolver. Sin borrar objetivos, registre cada texto de enlace, clasifique la primera repetición o la profundidad, identifique quién lo genera y cambie una entrada con reversión y prueba de salida.
Fije el llamador exacto y la ruta fallida
Copie comando, error, cwd, usuario efectivo, host o contenedor, root o chroot y ruta tal como la recibió el programa. Separe formas relativas y absolutas; no las sustituya por una expansión manual.
Anote si falla shell, servidor web, servicio, hook de paquete o despliegue. La misma cadena puede partir de otro directorio o namespace, por lo que una prueba del administrador no reproduce aún al proceso.
Siga cada componente sin resolver a ciegas
Desde la misma vista use namei -l -- "$path" y guarde directorios, enlaces y objetivos. Para un enlace individual use lstat, ls -ld y readlink --, de modo que inspeccione la entrada sin atravesarla.
No use solo readlink -f como primer registro: puede fallar sin mostrar el componente. Un objetivo relativo se evalúa desde el directorio del enlace, no desde donde el operador ejecutó ln.
Demuestre ciclo, profundidad u otro límite
Marque la primera entrada repetida. Un autoenlace o una cadena que vuelve a un enlace anterior es un ciclo. Si no se repite, cuente recorridos: una cadena acíclica de más de 40 también produce ELOOP.
Separe ELOOP de ENOENT, ENOTDIR y EACCES. Falta de componente, un no-directorio intermedio o permiso de búsqueda requieren otra reparación aunque la aplicación muestre un mensaje genérico.
Identifique al propietario antes de cambiar
Determine si la entrada pertenece a paquete, gestor de configuración, comando del framework, imagen, selector de versión o acción manual. Guarde inode, tiempos, objetivo y evidencia del despliegue; si no corrige la fuente, el enlace volverá.
Compruebe que el objetivo existe y tiene el tipo esperado dentro del mismo root y namespace del llamador. No aplique chmod a todo el árbol, no borre el directorio objetivo ni convierta todos los enlaces relativos en absolutos.
Cambie una entrada y exija una prueba de salida
Cree el enlace corregido con otro nombre en el mismo directorio, verifique el objetivo y renómbrelo mediante el sistema propietario. Conserve el texto anterior y la reversión; si el despliegue escribe todavía, deténgase.
Repita namei y la operación original con el mismo usuario, cwd, root y namespace. Debe terminar en el objeto previsto, funcionar la aplicación y persistir la corrección en la siguiente ejecución del paquete o despliegue.
