Puede usar find para recuperar todos los archivos de tipo enlace simbólico y agregar la -ilnameopción de buscar por nombre del destino del enlace. Esto funciona igual que -inamepara el nombre de destino del enlace en lugar del nombre del enlace.
find -type l -ilname "*bar*"
Eso todavía imprimirá el nombre del enlace, no el objetivo. Si desea imprimir los nombres de los objetivos, intente esto:
find -type l -ilname "*bar*" -printf "%l\n"
U obtener una lssalida de estilo completo
find -type l -ilname "*bar*" -ls
Lo que quiere decir con " hacer algo con la lista " no está claro, pero si desea operar en los archivos de enlace, puede usar el -execargumento para encontrar:
find -type l -ilname "*bar*" -exec touch {} \;
Pero si necesita operar en los objetivos del enlace, deberá usar el -printfpara obtener los valores objetivo y luego xargso algún bucle para operar. Podrías hacer algo como esto:
find -type l -printf "%l\n" | grep bar | xargs touch
... que también muestra cómo usar en greplugar de find -ilnamehacer coincidir su nombre, aunque podría hacerlo de cualquier manera.
find /dev/disk/ -type l -ilname "*sde*"no funciona?