ฉันจะรับ mlocate เพื่อจัดทำดัชนีไดเรกทอรีบางอย่างได้อย่างไร


23

ฉันต้องการใช้mlocateบนเซิร์ฟเวอร์ Ubuntu ของฉัน แต่เพียงเพื่อจัดทำดัชนีไดเรกทอรีบางอย่าง (เช่น/homeและ/dataไม่ใช่ทุกอย่างภายใต้/) อย่างไรก็ตามการกำหนดค่ามาตรฐานของ mlocate ทำงานในทางตรงกันข้าม คุณระบุเส้นทางที่คุณต้องการลบ (ด้วยPRUNE_PATHS)

มีวิธีง่าย ๆ ในการบรรลุเป้าหมายนี้หรือมียูทิลิตี้ที่คล้ายกันซึ่งจะทำสิ่งที่ฉันต้องการหรือไม่? (หมายเหตุ: ควรรักษาดัชนีเช่นmlocateนั้นจึงfindไม่เป็นที่ยอมรับเช่น) ขอบคุณ

คำตอบ:


16

คุณสามารถใช้ตัวเลือก -U (--database-root PATH)

updatedb -l 0 -U /home/user/music -o /home/user/databasefile

-o เขียนไปยังไฟล์เอาต์พุต

-l 0 ทำให้คุณสามารถอ่านได้มิฉะนั้นจะสามารถเข้าถึงได้เพื่อค้นหาเท่านั้น

จากนั้นคุณสามารถใช้งานได้เช่น:

locate -d /home/user/databasefile Dylan

-d ตั้งค่าพา ธ ฐานข้อมูล

ในการใช้ mlocate ที่มีไดเรกทอรีรากมากกว่าหนึ่งไดเรกทอรีเพียงสร้างสองไฟล์ฐานข้อมูลและใช้ค้นหาด้วยตัวเลือกของฐานข้อมูลสองแบบดังนี้:

locate -d /home/user/dbfile1 -d /home/user/dbfile2 searchstring

เพื่อสรุปและตอบคำถามที่เฉพาะเจาะจงมากขึ้น:

updatedb -l 0 -U /home -o /home/user/home_dbfile
updatedb -l 0 -U /data -o /home/user/data_dbfile
locate -d /home/user/home_dbfile -d /home/user/data_dbfile Dylan

Upvoting เช่นนี้เป็นคำตอบบางส่วน อย่างไรก็ตามอนุญาตให้ใช้ได้เพียงรายการเดียวที่อนุญาตเท่านั้น คำถามของฉันเกี่ยวกับวิธีการที่อนุญาตพิเศษมากกว่าหนึ่งเส้นทาง
Andrew Ferrier

1
ปรับปรุงคำตอบและเพื่อการจัดการที่ง่ายขึ้นฉันแนะนำให้สร้างนามแฝง
Janghou

คำตอบที่ดี! ฉันไม่ทราบว่าคุณสามารถค้นหาในสองฐานข้อมูลพร้อมกันขอบคุณสำหรับการชี้แจง ฉันจะทำเครื่องหมายสิ่งนี้ให้เป็นที่ยอมรับเว้นแต่จะได้คำตอบที่ดีกว่า!
Andrew Ferrier

คือupdatedb -l 0 -U /home/user/musicrecursive? ดูเหมือนจะไม่เป็นในกรณีของฉัน
Gaia

22

แก้ไขไฟล์ /etc/updatedb.conf

ตั้งค่าPRUNEPATHSด้วยไดเรกทอรีที่คุณไม่ต้องการค้นหา

PRUNEPATHS="/tmp /var/spool /media"

PRUNEPATHS: รายการพา ธ ของไดเร็กทอรีที่คั่นด้วย whitespace ซึ่งไม่ควรสแกนโดย updatedb แต่ละชื่อพา ธ ต้องอยู่ในรูปแบบที่จะรายงานไดเรกทอรีโดยระบุตำแหน่ง ตามค่าเริ่มต้นจะไม่มีการข้ามเส้นทาง

updatedbหมายเหตุว่าทุกข้อมูลการตั้งค่าดังกล่าวข้างต้นยังสามารถเปลี่ยนหรือปรับปรุงผ่านตัวเลือกบรรทัดคำสั่งเพื่อยูทิลิตี้


ไม่ตรงข้ามกับที่ฉันต้องการ สิ่งนี้จะทำดัชนีทุกอย่างยกเว้นไดเรกทอรีเหล่านั้น
Andrew Ferrier

คุณสามารถตั้งค่า PRUNEPATHS ได้ทุกอย่างยกเว้นไดเรกทอรีของคุณ วิธีนี้จะสแกนไดเรกทอรีของคุณเท่านั้น
LnxSlck

ตกลงขอบคุณสำหรับการแก้ไขคำชี้แจง นั่นเป็นบิตที่ไม่สามารถทำได้เพราะเมื่อฉันเพิ่มไดเรกทอรีย่อยข้างไดเรกทอรีที่ฉันต้องการจัดทำดัชนีฉันต้องจำไว้ว่าให้เพิ่มลงใน PRUNEPATHS อย่างไรก็ตามมันจะทำงาน ขอบคุณสำหรับคำแนะนำ
Andrew Ferrier

ใช่ฉันรู้ แต่ฉันไม่สามารถหาข้อมูลมากพอที่จะทำเช่นนั้น คุณไม่สามารถใช้บางอย่างเช่นค้นหาใช่ไหม
LnxSlck

ไม่ฉันมีข้อมูลจำนวนมากดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องจัดทำดัชนี ได้ชี้แจงในคำถาม
Andrew Ferrier

1

ฉันพบสิ่งอื่นที่คุณสามารถลองได้:

  1. QuickSearch - "ดังนั้น SearchTool ของฉันจึงใช้วิธีที่แตกต่าง: ใช้คำสั่ง 'ls' เพื่อแสดงรายการเนื้อหาของโฟลเดอร์ที่สืบค้นแล้วทำการค้นหาผลลัพธ์นั้นวิธีนี้ความเร็วในการค้นหาจะเร็วมาก (ยกเว้นครั้งแรกที่ต้องทำการ เอาต์พุต 'ls') "

ไม่แน่ใจเกี่ยวกับการจัดทำดัชนีมากนัก

  1. ใช้เครื่องมือtracker-gui
  2. วิธีแก้ปัญหาง่อย sudo หา "วางไดเรกทอรีการค้นหาของคุณที่นี่"> files.list grep 'filename' files.list

พยายามอย่าเพิ่มหลายคำตอบ หากจำเป็นให้แก้ไขคำตอบที่มีอยู่และรวมถึงข้อมูลเพิ่มเติม ขอบคุณ
jokerdino

ใช่ฉันจะทำอย่างนั้น
LnxSlck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.