Możesz użyć find, aby pobrać wszystkie pliki typu dowiązanie symboliczne i dodać -ilnameopcję wyszukiwania według nazwy miejsca docelowego łącza. Działa to tak samo, jak -inamew przypadku nazwy docelowej łącza zamiast nazwy łącza.
find -type l -ilname "*bar*"
To nadal wypisze nazwę linku, a nie celu. Jeśli chcesz wydrukować nazwy celów, spróbuj tego:
find -type l -ilname "*bar*" -printf "%l\n"
Lub uzyskaj pełny efekt lswyjściowy
find -type l -ilname "*bar*" -ls
To, co rozumiesz przez „ zrób coś z listą ”, jest niejasne, ale jeśli chcesz operować na plikach łączy, możesz użyć -execargumentu, aby znaleźć:
find -type l -ilname "*bar*" -exec touch {} \;
Ale jeśli musisz operować na elementach docelowych łącza, będziesz musiał użyć przycisku, -printfaby uzyskać wartości docelowe, a następnie xargswykonać pętlę samodzielnie. Możesz zrobić coś takiego:
find -type l -printf "%l\n" | grep bar | xargs touch
... który pokazuje również, jak używać grepzamiast find -ilnamedopasowywania imienia, chociaż możesz to zrobić w obie strony.