ความแตกต่างระหว่างค้นหาและ mlocate


15

ผมอยากจะติดตั้งคำสั่งซึ่งสามารถใช้ได้ผ่านทางlocatesudo apt-get installmlocate

อย่างไรก็ตามฉันวิ่งครั้งแรกsudo apt-get installlocateซึ่งดูเหมือนจะติดตั้งอย่างอื่น

พิมพ์คำสั่งแต่ดูเหมือนว่าจะเรียกร้องให้locate <package>mlocate

แพคเกจคืออะไรlocateและสามารถ (ควร) นำออกอย่างปลอดภัยหรือไม่


1
ฉันเชื่อว่า mlocate คือการแทนที่ที่ตั้งดั้งเดิม แต่นั่นคือ 15 ปีที่แล้วและอาจเป็นไปได้ว่าแพคเกจหนึ่งเป็นนามแฝงหรือผู้อ้างอิงไปที่อื่น มีตัวแปรอื่น "slocate" ซึ่งสังเกตการเปิดเผยของไฟล์ตามการอนุญาตของผู้ใช้ แต่ฉันไม่เห็น ในระยะเวลาอันยาวนาน
Otheus

คำตอบ:


25

หาแพคเกจคือการดำเนินการของการค้นหาจากfindutils GNU mlocateแพคเกจคือการดำเนินการของแนวคิดที่เรียกว่าเดียวกันmlocate พวกเขาใช้ฟังก์ชั่นพื้นฐานเดียวกัน: ค้นหาชื่อไฟล์อย่างรวดเร็วตามดัชนีที่สร้างขึ้นใหม่ทุกคืน พวกเขาแตกต่างกันในการทำงานบางอย่างของพวกเขานอกเหนือจากการใช้งานพื้นฐาน โดยเฉพาะอย่างยิ่ง GNU จะค้นหาการสร้างดัชนีของไฟล์ที่อ่านได้ทั่วโลกเท่านั้น (เว้นแต่คุณจะเรียกใช้จากบัญชีของคุณ) ในขณะที่ mlocate จะสร้างดัชนีของไฟล์ทั้งหมด แต่ให้ผู้ใช้ที่โทรเข้ามาเห็นไฟล์ที่สามารถเข้าถึงได้ สิ่งนี้ทำให้ mlocate มีประโยชน์มากขึ้นในสถานการณ์ส่วนใหญ่ แต่ไม่สามารถใช้งานได้ในการติดตั้งที่ไม่ปกติซึ่งผู้ดูแลระบบไม่ได้เรียกใช้ (เพราะmlocateจะต้องมีการsetuid รูท ) และความเสี่ยงด้านความปลอดภัย

ภายใต้ Debian และตราสารอนุพันธ์หากคุณติดตั้งทั้งคู่locateจะเรียกใช้การmlocateใช้งานและคุณต้องเรียกใช้locate.findutilsเพื่อเรียกใช้งานการดำเนินการของ GNU นี้จัดการผ่านทางเลือก หากคุณติดตั้งทั้งคู่ทั้งคู่จะใช้เวลาในการสร้างดัชนีตามลำดับขึ้นมาใหม่ แต่อย่างใดอย่างหนึ่งนอกจากนั้นพวกเขาจะไม่ขัดแย้งกัน


2
คุณละเลยที่จะพูดถึงmlocateคุณสมบัติหลักของที่ได้รับชื่อ ("ผสานการค้นหา"): มันมีรุ่นupdatedbที่นำดัชนีเก่ามาใช้ใหม่เพื่อปรับปรุงประสิทธิภาพการอัปเดตโดยการสืบค้นเฉพาะรายการไฟล์ / ไดเรกทอรีย่อยสำหรับไดเรกทอรีที่ctimeมีการเปลี่ยนแปลง .
ssokolow

6

mlocate คือการดำเนินการค้นหาที่ใหม่กว่า เมื่อคุณติดตั้งmlocateแล้ว

จะเปลี่ยน / usr / bin / ค้นหาไบนารีเพื่อชี้ไปที่ mlocate ผ่านกลไกทางเลือก

นั่นคือเหตุผลที่คุณได้รับพฤติกรรม mlocate ถ้าคุณติดตั้งในลำดับที่

รายละเอียดสามารถพบได้ที่นี่


อันที่จริงฉันไม่เคยติดตั้งmlocateแต่บนระบบ Ubuntu 16.04 ของฉัน/usr/bin/locate -> /etc/alternatives/locate -> /usr/bin/mlocate
cayhorstmann
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.