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