Vous pouvez utiliser find pour récupérer tous les fichiers de type lien symbolique et ajouter l' -ilname
option de recherche par nom de la destination du lien. Cela fonctionne exactement comme -iname
pour 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 ls
sortie 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' -exec
argument pour trouver:
find -type l -ilname "*bar*" -exec touch {} \;
Mais si vous devez opérer sur les cibles de lien, vous devrez utiliser le -printf
pour obtenir les valeurs cibles et ensuite xargs
ou 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 grep
au lieu de find -ilname
faire votre correspondance de nom, bien que vous puissiez le faire de toute façon.
find /dev/disk/ -type l -ilname "*sde*"
fonctionne pas?