คุณไม่มีภาคแสดงที่ระบุสิ่งที่คุณกำลังค้นหา (เช่น-name
)
วิธีค้นหาในโฮมไดเรกทอรีตามชื่อ:
find ~ -name \*.pdf
โปรดทราบว่า*
จะต้องใช้อักขระตัวแทนเพื่อหลีกเลี่ยงการใช้เปลือกเพื่อแปลความหมายก่อนที่การค้นหาจะได้รับในมือ การใช้'*.pdf'
และจะมีผลเช่นเดียวกับ"*.pdf"
\*.pdf
หากต้องการค้นหาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่:
find ~ -iname \*.pdf
หากต้องการตัดผลลัพธ์ไปที่ไฟล์เท่านั้น (นิพจน์ชื่ออาจดูแลสิ่งนี้ให้คุณ แต่ในกรณีที่คุณมีไดเรกทอรีที่มีชื่อแปลก ๆ ):
find ~ -type f -iname \*.pdf
เพื่อให้แน่ใจว่าค้นหาตามลิงก์สัญลักษณ์ (โดยปกติฉันต้องการทำสิ่งนี้ด้วยตัวเองเมื่อทำการค้นหา):
find ~ -follow -type f -iname \*.pdf
ในการทำบางสิ่งบางอย่างกับไฟล์ที่คุณพบ: คุณสามารถดัมพ์นี้ไปยังไฟล์โดยใช้การเปลี่ยนเส้นทาง stdout (เช่นแทค> filename
ที่ส่วนท้าย) หรือใช้-exec
ตัวเลือกเพื่อเรียกใช้คำสั่ง (ดูหน้ารายละเอียด man man) หลังเรียกใช้คำสั่งในแต่ละไฟล์ในเวลาแม้ว่า บ่อยครั้งที่มันเร็วกว่าที่จะให้xargs
คำสั่งส่งไฟล์ที่คุณพบเป็นอาร์กิวเมนต์ไปยังคำสั่งอื่นทั้งหมดในครั้งเดียวหรือชิ้นใหญ่ทีละครั้ง ตัวอย่างเช่นสำหรับ ad-hoc (แต่ไม่ได้ทำดัชนี) greps ผ่านไฟล์ส่วนหัว:
find ~ -follow -type f -name \*.h | xargs grep -nH "identifier"
และหนึ่งนามสกุลสุดท้ายเพื่อให้คำสั่งสุดท้ายนั้นทำงานได้อย่างถูกต้องหากคุณมีไฟล์ & ไดเรกทอรีที่มีช่องว่างอยู่:
find ~ -follow -type f -name \*.h -print0 | xargs -0 grep -nH "identifier"
find
อยู่ไกลจากไร้ประโยชน์