ฉันพยายามค้นหาสำเนาทั้งหมดของexample.filename
บนเซิร์ฟเวอร์ FreeBSD ของฉัน วิธีที่ดีที่สุด / ง่ายที่สุด / มีประสิทธิภาพมากที่สุดคืออะไร
ฉันพยายามค้นหาสำเนาทั้งหมดของexample.filename
บนเซิร์ฟเวอร์ FreeBSD ของฉัน วิธีที่ดีที่สุด / ง่ายที่สุด / มีประสิทธิภาพมากที่สุดคืออะไร
คำตอบ:
find / -name example.filename
locate filename
เร็วกว่าfind
มากหากคุณกำลังใช้บริการค้นหาและจะค้นหาเฉพาะไฟล์ที่มีอยู่ในเวลาที่updatedb
ใช้งานครั้งล่าสุดเท่านั้น (โดยปกติจะเป็นเวลากลางคืนภายใต้การควบคุมของงาน cron)
คุณสามารถเรียกใช้updatedb
ด้วยมือ แต่นั่นก็ช้ากว่าที่find
cletus แนะนำและต้องการรูท บางครั้งฉันอัพเดทฐานข้อมูลด้วยตนเองหลังจากติดตั้งสิ่งใหม่ ๆ
find /
หรืออยู่บนต้นไม้ใหญ่มากกว่าหนึ่งครั้งต่อสัปดาห์การใช้locate
บริการอาจคุ้มค่าเพราะlocate(1)
เร็วกว่ามาก
sudo periodic weekly
อัพเดทlocate
ฐานข้อมูล เรียกใช้หลังจากติดตั้งหรือดาวน์โหลดใด ๆ ที่อาจมีไฟล์ที่คุณต้องการ
หากคุณได้ติดตั้ง (aka slocate) แล้ว
locate example.filename
ค้นหาทำงาน cron ทุกคืนที่ทำดัชนีไฟล์ทั้งหมดในเครื่องของคุณใหม่ เหตุผลดังกล่าวไม่ใช่ข้อมูลล่าสุดเสมอ
บางครั้งคุณต้องการค้นหาไฟล์ในระดับไดเรกทอรีเฉพาะ ในกรณีนี้สามารถใช้ shell wildcards ได้อย่างสะดวก:
ls /data/*/example.filename
เห็นได้ชัดว่ามันใช้งานได้เฉพาะถ้าคุณมีโครงสร้างไดเรกทอรีที่เข้มงวด
locate
ดังที่คนอื่น ๆ กล่าวถึงlocate
เป็นวิธีที่รวดเร็วในการค้นหาไฟล์ คำสั่งนี้ใช้ดัชนีที่รวบรวมไว้ล่วงหน้าของชื่อไฟล์และโฟลเดอร์ ค้นหาฐานข้อมูลชื่อนี้แทนที่จะรวบรวมข้อมูลผ่านระบบไฟล์ของคุณ
locate example.filename
-i
จะเป็นกรณีตายเพิ่ม
locate -i eXAmPle.FileName
locate
ฐานข้อมูลฐานข้อมูลที่ใช้โดยlocate
ต้องเป็นข้อมูลล่าสุด หลังจากทำการติดตั้งหรือดาวน์โหลดที่อาจมีไฟล์ที่คุณต้องการคุณต้องอัปเดตlocate
ฐานข้อมูล
locate
ฐานข้อมูลจะได้รับการปรับปรุงโดยอัตโนมัติโดยระบบ FreeBSD ของคุณ มีงานประจำสัปดาห์ซึ่งรวมถึงภารกิจนี้ เหลือเกินเหล่านี้มีการระบุไว้ใน/etc/periodic/weekly/310.locate
สคริปต์
วิธีที่ปลอดภัยที่สุดที่ง่ายที่สุดในการบังคับให้อัพเดทlocate
ฐานข้อมูลก่อนคือบังคับให้เหลือเกินชุดประจำสัปดาห์ที่จะต้องทำตอนนี้
sudo periodic weekly
หรือคุณอาจบังคับให้เหลือเกินประจำวันให้เสร็จ คุณอาจต้องการทำสิ่งนี้ทันทีหลังจากตั้งค่าระบบ FreeBSD ใหม่
sudo periodic daily weekly monthly
หากใช้ช่องทางอื่นในการอัพเดทlocate
ฐานข้อมูลคุณอาจได้รับข้อความเกี่ยวกับความไม่ปลอดภัยเปิดเผยชื่อของไฟล์ระบบทั้งหมดของคุณต่อผู้ใช้ทุกคนในระบบ FreeBSD การใช้periodic
เส้นทางหลีกเลี่ยงปัญหานี้
หากคุณมีฐานข้อมูลการค้นหาที่ทันสมัยแล้วเพียงแค่:
locate example.filename
บางครั้งฉันก็ทำ
find . | grep example.filename
อาจไม่มีประสิทธิภาพอย่างมหาศาล