Estoy trabajando en un sistema HP-UX y quiero saber si hay algún enlace simbólico circular.
Hasta ahora estoy usando el comando:
ls -lrt `find ./ -follow -type l`
Pero solo está haciendo ls -lrt en el directorio actual como resultado.
¿Qué comando debo usar para encontrar todos los enlaces simbólicos circulares en un sistema?
unix
find
symbolic-link
hp-ux
Vladimir
fuente
fuente

findcomando simplemente imprime.o no imprime nada (por lo que solo está ejecutandols -lrtols -lrt .) No sabe lo suficiente sobre HP-UXfindpara decirle cómo solucionar esto (¿tal vez requiere un explícito-print? ) 2) ¿Qué quieres decir con "circular"?./a -> ./by./b -> ./a? ¿Qué hay de/home/foo/a -> /home? O/home/foo/a -> /home/bary/home/bar/b -> /home/foo?-followrealmente me da algunos enlaces reales son resultados?-follow,findexamina el enlace en sí, no el archivo al que apunta. Porfind . -type llo tanto, imprime cosas que son enlaces (porque lo son-type l) sin siquiera mirar para ver a qué apuntan (que serían archivos o directorios u otros enlaces que apuntan a archivos o directorios).Respuestas:
La página de manual de GNU find dice que todos los hallazgos POSIX deben detectar bucles del sistema de archivos y emitir mensajes de error en estos casos, y he probado
en GNU find, que pudo encontrar bucles del formulario
./a -> ./be./b -> ./aimprimir el error(esto también funcionó
a->b->c->a)Asimismo, los bucles del formulario
./foo/x -> ..y./foo/a -> ./bar+./bar/b -> ./fooimprimieron los erroresSi desea hacer algo con la salida que no sea leerlo, necesitaría redirigirlo de stderr a stdout y canalizarlo a algún script que pueda analizar los mensajes de error.
fuente
-follow, sí.lslugar de obtener enlaces reales cuando no se usa-follow?lscomando usando la salida de tufindcomando. Sufindcomando no imprimió nada, por lo que su shell se ejecutólssin nada, que enumera el directorio actual.