Cómo encontrar todas enlace simbólico en PWD que se refieren a archivos fuera de las PCD?unix

StackOverflow https://stackoverflow.com/questions/9446571

  •  12-11-2019
  •  | 
  •  

Pregunta

me puede encontrar todos los link en el directorio con el comando:

find . -type l

Pero necesito el link que sólo hacen referencia a los archivos fuera de las PCD.¿Alguien puede decir cómo hacerlo?Gracias.

¿Fue útil?

Solución

Me gustaría hacer algo como:

find . -type l -exec readlink -f '{}' \; | grep -v "^`readlink -f ${PWD}`"

readlink -f le da canónica de la ruta de un archivo, de modo que el primer comando da la ruta de los enlaces y de la grep comando excluye los archivos que comienzan con la ruta de acceso actual.

Si desea recordar que los enlaces apuntando a los caminos, he aquí una manera de hacerlo:

find . -type l -exec sh -c 'echo $(readlink -f "{}") "<-- {}"' \; \
  | grep -v "^$(readlink -f ${PWD})"

el -exec interruptor es más complicado ya que tienes que mostrar tanto la vinculada ruta y la ruta del enlace simbólico.

Otros consejos

ich haría algo como:

for link in `find . -type l`; do X=$(dirname `readlink $link`); if [ $X != '.' ]; then echo $link; fi ; done

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top