Apakah ada mesin pencari file seperti "Semuanya" di Linux?

46

Di Windows ada mesin pencari file bagus bernama Everything , yang (tidak seperti find) sangat cepat dan (tidak seperti locate) selalu mengembalikan hasil yang terbaru. AFAIK berfungsi dengan mengisi basis data dari jurnal NTFS (tidak bekerja dengan sistem file lain).

Saya ingin tahu apakah ada yang serupa (saya tidak peduli dengan GUI; poin saya adalah kecepatan dan jaminan terbaru) untuk Linux (ext3 atau ext4); Saya telah mencari di Google tetapi tidak menemukan apa pun. Bisakah hal seperti ini dilakukan atau bahkan seseorang sedang mengerjakannya?

maaartinus
sumber
2
Hal yang saya sukai dari Semuanya adalah tidak hanya instan, tetapi juga berfungsi untuk banyak partisi, seperti sistem multiboot dengan instalasi enam windows plus beberapa partisi data. Saya ingin memiliki pencarian Linux yang akan bekerja di banyak partisi Linux, bukan hanya partisi tunggal.
Arch Parsons
Banyak varian lokasi ada (mlocate, slocate, rlocate, ....) dengan karakteristiknya sendiri (pembaruanb inkremental, pengindeksan realtime atau aman, ...). Semua sangat dapat dikonfigurasi (halaman manual updatedb.conf dan temukan)
Manu H

Jawaban:

30

Anda mungkin melihat rlocate , implementasi ulang lokasi yang selalu terkini. Proyek menarik lainnya adalah recoll yang juga mendukung pengindeksan waktu nyata dan memungkinkan Anda (seperti beagle) juga melakukan pencarian teks lengkap. Akhirnya saya harus menyebutkan doodle yang juga mendukung pengindeksan waktu nyata. Untuk corat-coret ada beberapa frontend bagus seperti lele .

Perhatikan bahwa Anda juga dapat membuat (r) menemukan hasil yang dapat diklik dengan menggunakan misalnya urxvt sebagai terminal-emulator dan dengan menulis sesuatu seperti

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

(dan mengeksekusi xrdb -load ~/.Xdefaultssetelah itu)

siswa
sumber
1
Saya pikir jawaban ini harus diterima. rlocateitu sendiri sudah membuat jawaban lengkap.
phunehehe
4
Ada apa di 2017? rlocate menyebutkan Linux 2.6 dan tidak ada paket Ubuntu 16.04. recoll tampaknya menarik dan diperbarui, meskipun berlebihan untuk kebutuhan saya. doodle memiliki paket Ubuntu pada 16.04 jadi mungkin bisa menjadi pilihan.
Stéphane Gourichon
Mengapa mengingat kembali sebuah berlebihan, Anda juga dapat menjalankan recoll dari commandline. Ini juga terintegrasi dengan baik dengan KDE dan persatuan jika Anda mau.
siswa
Masalah terbesar saya dengan catfish adalah ketidakmampuan untuk berinteraksi dengan file - jika saya ingin menyalin 20 file dari hasil pencarian saya perlu Show in File Manager20 kali.
Annan
Dokumentasi rlocate memiliki daftar persyaratan "Konfigurasi kernel" yang saya tidak tahu bagaimana harus memenuhi, dan jika saya membuka dan menjalankannya ./configuresaya diberitahu saya harus "menginstal paket dengan sumber kernel penuh". Alat ini tampaknya tidak terjangkau oleh non-guru.
Qwertie
7

Saya juga mencari alat "Cari Segalanya" untuk linux dan menemukan "Cari Monyet" di repositori Ubuntu. SUKA!

Beratnya ringan, memuat dengan cepat, pencarian kartu liar menghasilkan banyak hasil secara instan, ditambah lagi memiliki filter dan metode pencarian lanjutan.

Saya sekarang memiliki alat pencarian "Semuanya" untuk linux!

Charles
sumber
Tautannya adalah Patah
Chris Nevill
4

Ide menarik untuk mengimplementasikan ini di-root dalam sistem file, tapi tidak ada yang seperti yang saya ketahui. Terlepas dari beberapa add-on yang mencoba membenamkan diri cukup dalam ke lapisan fs atas untuk mendapatkan data awal (Update: Semuanya termasuk dalam kategori ini sendiri), saya khawatir Anda terbatas pada proses yang kurang memuaskan dari pengindeksan reguler.

Apa yang mungkin paling dekat dengan apa yang Anda cari mungkin adalah sistem file virtual libferris.

Di dunia pengindeksan, Anda mungkin ingin melihat sekilas , yang setidaknya dapat memperbarui dan menambahkan indeksnya.

Pembaruan: Saya baru saja membaca hal-hal tentang "Semuanya", dan sepertinya tidak melekat pada FS juga, jadi libferris tidak terlalu jauh, ditambah juga memungkinkan untuk mengindeks konten, bukan hanya nama file. Itu memuaskan kebutuhan Anda untuk selalu up-to-date setiap saat.

Tatjana Heuser
sumber
Milis Ferris mengering sejak 2007 dan tidak berlanjut hingga 2010. Ada repositori github yang tidak aktif antara mi-2016 dan Maret 2017 github.com/monkeyiq/ferris/commits/master . Mungkin itu berlanjut.
Stéphane Gourichon
2

Anda dapat menggunakan locateperintah dan jika Anda ingin memperbarui databasenya, jalankan perintah berikut:

# updatedb

Perintah ini memperbarui database cari dalam beberapa detik

RobotMan
sumber
implementasi sampel interaktif: github.com/phil294/linux-locate-everything
phil294
2

Sudahkah Anda memeriksa Angry Search . Ia mengklaim dalam uraiannya bahwa itu seperti Segalanya. FSearch juga mengklaim hal yang sama.

sinar biru
sumber
1
Mempertimbangkan berapa banyak hasil pencarian yang Anda tunjuk ke FSearch saat Anda mencari alternatif Evernote untuk Linux, saya terkejut Anda adalah satu-satunya yang mempostingnya di sini.
Ghos3t
1

Seharusnya mungkin untuk membangun sesuatu seperti ini dalam beberapa baris kode menggunakan inotify (ada juga paket inotify-tools yang akan memungkinkan Anda untuk mengimplementasikan ini menggunakan skrip shell).

(Saya akan sangat terkejut bahwa alat seperti itu akan didorong dari jurnal - lebih mungkin itu diterapkan di tingkat sistem file virtual)

symcbean
sumber
1
Saya tidak yakin apakah inotifybisa berguna di sini karena tidak rekursif. Membuat jam tangan untuk seluruh pohon itu sederhana, tetapi bisakah kernel menangani puluhan ribu darinya? Bahkan jika itu bisa, ini tidak terlihat sebagai cara yang efektif bagi saya.
maaartinus
1

btrfstelah mengimplementasikan find-newperintah terhadap subvolume selama bertahun-tahun. Jika Anda menyimpan pohon snapshot yang relatif terbaru, ia dapat digunakan untuk menonton sistem file secara atom untuk semua perubahan dengan sedikit keributan.

Anda akan menggunakannya seperti:

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

Anda bisa mendapatkan gen-id yang Anda butuhkan untuk perbandingan dengan perintah yang sama, tetapi menggunakan gen-id palsu. Ada info lebih lanjut di sini .

mikeserv
sumber
1

Front-end UI untuk perintah loc yang bekerja hampir sama dengan Semuanya:

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

Alex Tuduran
sumber
1
Ini tampaknya dibangun di atas premis palsu yang locatetidak pernah diperbarui secara otomatis.
roaima
Tolong kembangkan. Apa yang Anda maksud dengan lokasi yang diperbarui?
Alex Tuduran
Proyek GitHub Anda menyatakan bahwa perintah Unix locatemenggunakan prinsip yang sama, kecuali bahwa basis data tidak diperbarui secara otomatis . The locatepaket termasuk crontugas yang tidak secara otomatis memperbarui database.
roaima
Jika itu benar, maka itu hanya membantu tujuan alat. Memiliki basis data yang diperbarui secara otomatis membebaskan pengguna dari melakukan tugas lain. Pengguna masih dapat memperbarui database secara eksplisit jika membutuhkan pembaruan segera. Atau apa kekhawatiran di sini tentang premis yang salah?
Alex Tuduran
1

Saya menggunakan Pencarian Marah pada Raspberry Pi 3 B + menjalankan Peregangan dan berfungsi dengan baik. Ini sangat cepat sama seperti Cari Semuanya di windows. Sangat menyenangkan bisa menemukan file dengan sangat cepat.

lulu
sumber