Con el comando:
ls -la *
Puedo enumerar todos mis enlaces simbólicos.
¿Cómo puedo eliminar todos los enlaces simbólicos que están vinculados a una carpeta especial?
Por ejemplo:
En mi directorio usr/local/bintengo las siguientes entradas:
lrwxrwxrwx 1 root root 50 Apr 22 14:52 allneeded -> /usr/local/texlive/2011/bin/x86_64-linux/allneeded
lrwxrwxrwx 1 root root 47 Apr 22 14:52 amstex -> /usr/local/texlive/2011/bin/x86_64-linux/amstex
lrwxrwxrwx 1 root root 24 Apr 23 19:09 arara -> /home/marco/.arara/arara
Ahora quiero eliminar todos los enlaces con la ruta /usr/local/texlive/

Respuestas:
Asegúrate de leer la respuesta alternativa . Es aún más importante, aunque no se ha votado tan alto en este momento.
Puede usar esto para eliminar todos los enlaces simbólicos:
Con
findversiones modernas .En versiones anteriores de búsqueda, puede ser:
Para limitar a un determinado objetivo de enlace, suponiendo que ninguna de las rutas contiene ningún carácter de nueva línea:
o bien formateado
Por
ifsupuesto, también podría incluir una condición más compleja, como hacer coincidir un patrón congrep.Adaptado a su caso:
o bien formateado:
fuente
-printal final delfindcomando para obtener algunos comentarios visuales.Con un moderno
findque soporta-lname:Deberías hacerlo.
fuente
find /usr/local/binfindha tenido-lnamemás tiempo del que lo he mantenido (desde alrededor de 2003).findrealmente me refería a GNUfind. ;) Yo solíausr/local/bin, porque eso es lo que usaba el OP.La
findsolución es genial.En caso de que su búsqueda no sea compatible
-lname, aquí hay otra forma que solo usa shell yreadlink.fuente
Con
zsh:$REPLY:Presuelve completamente la ruta de acceso a uno sin enlace simbólico, por lo que suponiendo que/usr/local/texliveesté libre de enlace simbólico en sí mismo, eliminaría todos los archivos que, después de la resolución de enlace simbólico, viven bajo los/usr/local/textlivecuales incluiría enlaces/usr/local/texlive/foopero también../texlive/barao hacia/usr/./local/texlive/whatevero a los/some/other/symlinkcuales es un enlace simbólico que apunta/usr/local/texlive, etc. .fuente
Ir a la ruta de acceso y establecer la configuración de ruta
fuente
usr/local/binesegrep, estegrep -Ees el camino a seguir. De lo contrario, no habría resultados coincidentes. Tambiénhenlsno sirve a ningún propósito aquí!-h, --human-readable : with -l, print sizes in human readable format (e.g., 1K 234M 2G). Para más verman lsoman grep