Vous pouvez utiliser find pour récupérer tous les fichiers de type lien symbolique et ajouter l' -ilnameoption de recherche par nom de la destination du lien. Cela fonctionne exactement comme -inamepour le nom de cible du lien au lieu du nom du lien.
find -type l -ilname "*bar*"
Cela affichera toujours le nom du lien, pas la cible. Si vous souhaitez imprimer les noms des cibles, essayez ceci:
find -type l -ilname "*bar*" -printf "%l\n"
Ou obtenez une lssortie complète
find -type l -ilname "*bar*" -ls
Ce que vous entendez par « faire quelque chose avec la liste » n'est pas clair, mais si vous voulez opérer sur les fichiers de liens, vous pouvez utiliser l' -execargument pour trouver:
find -type l -ilname "*bar*" -exec touch {} \;
Mais si vous devez opérer sur les cibles de lien, vous devrez utiliser le -printfpour obtenir les valeurs cibles et ensuite xargsou une boucle vous-même pour fonctionner. Vous pourriez faire quelque chose comme ça:
find -type l -printf "%l\n" | grep bar | xargs touch
... qui montre également comment utiliser grepau lieu de find -ilnamefaire votre correspondance de nom, bien que vous puissiez le faire de toute façon.