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