Bạn có thể sử dụng find để tìm nạp tất cả các tệp thuộc loại symlink và thêm -ilnametùy chọn để tìm kiếm theo tên của đích liên kết. Điều này hoạt động giống như -inamenhưng đối với tên mục tiêu liên kết thay vì tên liên kết.
find -type l -ilname "*bar*"
Điều đó vẫn sẽ in ra tên của liên kết, không phải mục tiêu. Nếu bạn muốn in tên của các mục tiêu, hãy thử điều này:
find -type l -ilname "*bar*" -printf "%l\n"
Hoặc có được một lsđầu ra kiểu đầy đủ
find -type l -ilname "*bar*" -ls
Ý của bạn là " làm gì đó với danh sách " không rõ ràng, nhưng nếu bạn muốn thao tác trên các tệp liên kết, bạn có thể sử dụng -execđối số để tìm:
find -type l -ilname "*bar*" -exec touch {} \;
Nhưng nếu bạn cần hoạt động trên các mục tiêu liên kết, bạn sẽ cần sử dụng -printfđể lấy các giá trị đích và sau đó xargshoặc một số vòng lặp để tự vận hành. Bạn có thể làm một cái gì đó như thế này:
find -type l -printf "%l\n" | grep bar | xargs touch
... Điều này cũng cho thấy cách sử dụng grepthay vì find -ilnamethực hiện khớp tên của bạn, mặc dù bạn có thể làm theo cách đó.