คุณสามารถใช้ 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การจับคู่ชื่อของคุณแม้ว่าคุณจะสามารถทำได้เช่นกัน