Ви можете використовувати 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щоб робити відповідність вашого імені, хоча ви могли це зробити так чи інакше.