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