Вы можете использовать find, чтобы получить все файлы типа symlink и добавить -ilnameопцию для поиска по имени назначения ссылки. Это работает так же, как и -inameдля целевого имени ссылки вместо имени ссылки.
find -type l -ilname "*bar*"
Это все равно распечатает имя ссылки, а не цель. Если вы хотите напечатать имена целей, попробуйте это:
find -type l -ilname "*bar*" -printf "%l\n"
Или получите полный lsстиль вывода
find -type l -ilname "*bar*" -ls
Что вы подразумеваете под « сделать что-то со списком », неясно, но если вы хотите работать с файлами ссылок, вы можете использовать -execаргумент для поиска:
find -type l -ilname "*bar*" -exec touch {} \;
Но если вам нужно работать с целевыми объектами ссылки, вам нужно будет использовать -printfцелевые значения для получения целевых значений, а затем xargsили какой-либо цикл самостоятельно. Вы могли бы сделать что-то вроде этого:
find -type l -printf "%l\n" | grep bar | xargs touch
... который также демонстрирует, как использовать grepвместо find -ilnameсопоставления вашего имени, хотя вы можете сделать это в любом случае.