มีเครื่องมือค้นหาไฟล์เช่น“ ทุกอย่าง” ใน Linux หรือไม่?


46

ใน Windows มีเครื่องมือค้นหาไฟล์ที่ดีที่เรียกว่าEverythingซึ่งfindเร็วกว่าและแตกต่างจากlocateผลลัพธ์ที่เป็นปัจจุบันเสมอ AFAIK ใช้งานได้โดยการกรอกฐานข้อมูลจากวารสาร NTFS (มันไม่ทำงานกับระบบไฟล์อื่น)

ฉันสงสัยว่ามีบางอย่างที่คล้ายกัน (ฉันไม่สนใจ GUI จุดของฉันคือความเร็วและการรับประกันที่ทันสมัย) สำหรับ Linux (ext3 หรือ ext4) ฉัน googled แต่ไม่พบอะไรเลย สิ่งนี้สามารถทำได้หรือแม้กระทั่งคนที่ทำงานกับมัน?


2
สิ่งที่ฉันชอบเกี่ยวกับทุกอย่างคือมันไม่เพียง แต่เป็นแบบทันที แต่ยังใช้งานได้กับหลายพาร์ติชันเช่นระบบมัลติบูตที่มีการติดตั้งหกหน้าต่างรวมถึงพาร์ติชันข้อมูลหลายตัว ฉันต้องการค้นหา Linux ที่สามารถใช้งานได้กับหลาย ๆ พาร์ติชัน Linux ไม่ใช่แค่พาร์ติชันเดียว
— Arch Parsons

มีตัวแปรการค้นหาหลายรายการอยู่ (mlocate, slocate, rlocate, .... ) ที่มีลักษณะของตัวเอง (ที่เพิ่มขึ้นที่เพิ่มขึ้น b, เรียลไทม์หรือการสร้างดัชนีที่ปลอดภัย, ... ) ทั้งหมดอยู่ในกำหนดสูง (manpages ของ updatedb.conf และค้นหา)
— มนู H

คำตอบ:


30

คุณอาจดูที่การจัดสรรใหม่การปรับใช้การค้นหาใหม่ซึ่งเป็นปัจจุบันอยู่เสมอ อีกโครงการที่น่าสนใจคือการจัดทำใหม่ซึ่งรองรับการจัดทำดัชนีแบบเรียลไทม์และช่วยให้คุณ (เช่นบีเกิ้ล) ทำการค้นหาข้อความแบบเต็มนอกจากนี้ ในที่สุดฉันควรพูดถึงdoodleซึ่งยังสนับสนุนการจัดทำดัชนีตามเวลาจริง หา Doodle มีบางส่วนหน้าดีเช่นปลาดุก

โปรดทราบว่าคุณสามารถสร้าง (r) ค้นหาผลลัพธ์ที่สามารถคลิกได้โดยใช้ตัวอย่างเช่น urxvt เป็นเทอร์มินัลอีมูเลเตอร์และโดยการเขียนบางอย่างเช่น

URxvt.perl-ext: default,matcher URxvt.urlLauncher: /usr/bin/gnome-open     
URxvt.matcher.button: 1 URxvt.matcher.pattern.1: /.*

(และดำเนินการในxrdb -load ~/.Xdefaultsภายหลัง)


1
ฉันคิดว่าคำตอบนี้ควรได้รับการยอมรับ rlocateตัวเองทำให้คำตอบที่สมบูรณ์แล้ว
— phunehehe

4
มีอะไรใหม่ในปี 2560 rlocate กล่าวถึง Linux 2.6 และไม่มีแพ็คเกจ Ubuntu 16.04 recoll ดูเหมือนว่าน่าสนใจและได้รับการปรับปรุง แต่ overkill สำหรับความต้องการของฉัน doodle มีแพคเกจ Ubuntu ตั้งแต่ 16.04 ดังนั้นอาจเป็นตัวเลือก
— Stéphane Gourichon

เหตุใดจึงเรียกคืนค่า overkill คุณสามารถเรียกใช้ recoll ได้จาก commandline นอกจากนี้ยังทำงานร่วมกับ kde และ unity ได้ดีหากคุณต้องการ
— นักเรียน

ปัญหาที่ใหญ่ที่สุดของฉันเกี่ยวกับปลาดุกคือการไม่สามารถโต้ตอบกับไฟล์ได้ - หากฉันต้องการคัดลอก 20 ไฟล์จากผลการค้นหาที่ฉันต้องการถึงShow in File Manager20 เท่า
— Annan

เอกสารประกอบของ rlocateมีรายการข้อกำหนด "Kernel configuration" ที่ฉันไม่รู้ว่าจะต้องทำอย่างไรและถ้าฉัน./configureยกเลิกการติดตั้งและรันฉันจะบอกว่าฉันต้อง "ติดตั้งแพ็คเกจด้วยเคอร์เนลเต็ม" เครื่องมือนี้ดูเหมือนจะไม่เอื้ออำนวยสำหรับผู้ที่ไม่ใช่กูรู
— Qwertie

6

ฉันยังค้นหาเครื่องมือ "ค้นหาทุกอย่าง" สำหรับ linux และค้นพบ"Search Monkey"ในที่เก็บ Ubuntu รักมัน!

มันมีน้ำหนักเบาโหลดเร็วการค้นหาไวด์การ์ดจะสร้างผลลัพธ์ได้ทันทีพร้อมด้วยตัวกรองและวิธีการค้นหาขั้นสูง

ตอนนี้ฉันมีเครื่องมือค้นหา "ทุกอย่าง" ของฉันกลับมาแล้วสำหรับ linux!


ลิงก์ใช้งานไม่ได้
— Chris Nevill

4

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

สิ่งที่อาจใกล้เคียงที่สุดกับสิ่งที่คุณกำลังค้นหาอาจเป็นระบบไฟล์เสมือนของ libferris

ในโลกการจัดทำดัชนีคุณอาจต้องการดูแวบหนึ่งซึ่งอย่างน้อยสามารถอัปเดตและผนวกดัชนีของมันได้

อัปเดต: ฉันเพิ่งอ่านเนื้อหาเกี่ยวกับ "ทุกอย่าง" และดูเหมือนว่ามันไม่ได้มีอยู่ในระบบของ FS ดังนั้น libferris ก็ไม่ได้อยู่ใกล้มากนอกจากนี้ยังอนุญาตให้สร้างดัชนีเนื้อหาไม่ใช่แค่ชื่อไฟล์ มันตอบสนองความต้องการของคุณในการเป็นที่ทันสมัยตลอดเวลา


ชิงช้าสวรรค์รายการจดหมายแห้งขึ้นมาตั้งแต่ปี 2007 และยังคงไม่เกินปี 2010 มีพื้นที่เก็บข้อมูล GitHub ที่ไม่ได้ใช้งานระหว่างไมล์ 2016 และมีนาคม 2017 เป็นgithub.com/monkeyiq/ferris/commits/master บางทีมันยังคง
— Stéphane Gourichon

2

คุณสามารถใช้locateคำสั่งและหากคุณต้องการอัพเดตฐานข้อมูลให้รันคำสั่งต่อไปนี้:

# updatedb

คำสั่งนี้อัพเดตฐานข้อมูลค้นหาในไม่กี่วินาที


การใช้งานตัวอย่างแบบโต้ตอบ: github.com/phil294/linux-locate-everything
— phil294

2

คุณได้ตรวจสอบโกรธค้นหา มันอ้างในคำอธิบายว่ามันเป็นเหมือนทุกอย่าง FSearchอ้างว่าเหมือนกัน


1
เมื่อพิจารณาถึงจำนวนผลการค้นหาที่คุณได้รับชี้ไปที่ FSearch เมื่อคุณ google สำหรับ Evernote ทางเลือกสำหรับ Linux ฉันประหลาดใจที่คุณเป็นคนเดียวที่โพสต์ที่นี่
— Ghos3t

1

คุณควรสร้างบางอย่างเช่นนี้ในโค้ดสองสามบรรทัดโดยใช้ inotify (นอกจากนี้ยังมีแพ็คเกจ inotify-tools ซึ่งจะช่วยให้คุณสามารถใช้งานได้โดยใช้เชลล์สคริปต์)

(ฉันประหลาดใจมากที่เครื่องมือดังกล่าวจะถูกขับเคลื่อนจากวารสาร - มีโอกาสมากขึ้นที่จะนำไปใช้ในระดับระบบไฟล์เสมือน)


1
ฉันไม่แน่ใจว่าinotifyจะมีประโยชน์ที่นี่หรือไม่เพราะไม่เวียนเกิดซ้ำ การสร้างนาฬิกาสำหรับต้นไม้ทั้งหมดนั้นง่าย แต่เคอร์เนลสามารถจัดการกับมันได้หลายหมื่นหรือไม่ แม้ว่ามันจะทำได้ แต่มันก็ไม่ได้ดูเป็นวิธีที่มีประสิทธิภาพสำหรับฉัน
— maaartinus


1

btrfsได้ใช้find-newคำสั่งกับ subvolumes เป็นเวลาหลายปี หากคุณเก็บแผนผังสแน็ปช็อตที่ทันสมัยอยู่เสมอมันสามารถใช้เพื่อเฝ้าดูระบบไฟล์แบบอะตอมสำหรับการเปลี่ยนแปลงทั้งหมดด้วยความยุ่งยากเล็กน้อย

คุณจะใช้มันเหมือน:

btrfs sub find-new /chk/path [gen-id]

คุณสามารถรับ gen-id ที่คุณต้องการเพื่อเปรียบเทียบกับคำสั่งเดียวกัน แต่ใช้ bogus gen-id นอกจากนี้ข้อมูลเพิ่มเติมได้ที่นี่


1

UI front-end สำหรับค้นหาคำสั่งที่ใช้งานได้เกือบทุกอย่าง:

https://github.com/AlexTuduran/Locator/releases


1
ดูเหมือนว่าจะถูกสร้างขึ้นบนสมมติฐานที่locateไม่เคยมีการปรับปรุงโดยอัตโนมัติ
— roaima

กรุณาพัฒนา คุณหมายถึงอะไรเมื่อค้นหาตำแหน่งที่อัพเดท
— Alex Tuduran

รัฐโครงการ GitHub ของคุณว่าคำสั่ง Unixlocateใช้หลักการเดียวกันยกเว้นว่าฐานข้อมูลที่ไม่ได้รับการปรับปรุงโดยอัตโนมัติ locateแพคเกจรวมถึงcronงานที่ไม่ปรับปรุงฐานข้อมูลโดยอัตโนมัติ
— roaima

หากนั่นเป็นเรื่องจริงนั่นเป็นเพียงการช่วยเหลือเป้าหมายของเครื่องมือเท่านั้น การให้ฐานข้อมูลอัปเดตโดยอัตโนมัติจะทำให้ผู้ใช้ไม่สามารถทำงานอื่นได้ ผู้ใช้ยังคงสามารถอัพเดตฐานข้อมูลได้อย่างชัดเจนหากต้องการการอัพเดตทันที หรืออะไรคือความกังวลที่นี่เกี่ยวกับหลักฐานเท็จ?
— Alex Tuduran

1

ฉันใช้ Angry Search กับ Raspberry Pi 3 B + ที่กำลังทำงานอยู่และทำงานได้ดี มันค่อนข้างเร็วเหมือนค้นหาทุกอย่างบนหน้าต่าง มันดีมากที่สามารถค้นหาไฟล์ได้อย่างรวดเร็ว

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