Você pode usar o find para buscar todos os arquivos do tipo link simbólico e adicionar a -ilname
opção de pesquisar pelo nome do destino do link. Isso funciona exatamente como -iname
no nome do destino do link, em vez do nome do link.
find -type l -ilname "*bar*"
Isso ainda imprimirá o nome do link, não o destino. Se você deseja imprimir os nomes dos destinos, tente o seguinte:
find -type l -ilname "*bar*" -printf "%l\n"
Ou obtenha uma ls
saída de estilo completo
find -type l -ilname "*bar*" -ls
O que você quer dizer com " fazer algo com a lista " não é claro, mas se você quiser operar nos arquivos de link, poderá usar o -exec
argumento para encontrar:
find -type l -ilname "*bar*" -exec touch {} \;
Porém, se você precisar operar nos destinos de link, precisará usar o -printf
para obter os valores de destino e, em seguida, fazer xargs
um loop para operar. Você poderia fazer algo assim:
find -type l -printf "%l\n" | grep bar | xargs touch
... que também demonstra como usar em grep
vez de find -ilname
fazer a correspondência do seu nome, embora você possa fazer isso de qualquer maneira.