Saya bertanya-tanya apakah ada cara untuk meningkatkan find
kecepatan di terminal, tidak masuk akal bahwa menggunakan internet google untuk mencari akan memiliki kecepatan yang lebih baik daripada melakukan pencarian lokal untuk string atau hanya nama file.
Saya bertanya-tanya apakah ada cara untuk memiliki basis pengindeksan lokal, setelah dibangun, di masa depan, perintah find bisa sangat cepat.
Atau saran lain?
Terima kasih!
Jawaban:
Coba gunakan
locate
, itu harus melakukan apa yang Anda inginkan.sumber
locate
berasal (biasanyaslocate
), dan digunakanupdatedb
untuk membangun kembali DB. :-)Itu sangat tergantung pada apa kriteria pencarian Anda.
Jika Anda mencari nama file atau pola nama file, cari jauh lebih cepat, tetapi tidak cocok untuk file yang baru dibuat, karena indeks yang digunakan biasanya diperbarui hanya sekali sehari. Tetapi jika Anda bisa menggunakannya, itu sangat cepat.
Tetapi dengan find, Anda dapat mencari ukuran file, usia file, dan hal-hal lain, yang tidak dapat ditelusuri berdasarkan lokasi.
Jika Anda tahu ke mana harus mencari, Anda dapat menggunakan jalur untuk membatasi ruang lingkup pencarian:
hanya akan mencari file dari 2 hingga 10 M, maksimum 1 tahun di / some / path.
Program, yang tersedia di jalur dapat dicari dengan mana, membantu, lib dan file konfigurasi dengan mana. Contoh:
sumber
Menggunakan
locate
Alasannya adalah bahwa
locate
menggunakan database semua direktori dan file yang sudah ada yang sudah dibangun seperti yang Anda bayangkan!http://linux.about.com/od/commands/l/blcmdl5_locatedb.htm
Pada interval tertentu (dan dapat diubah), suatu pekerjaan berjalan memindai sistem file dan kemudian membangun basis data dengannya. Kemudian database ini (terletak b), dengan indeks yang sesuai yang
locate
perintahnya bertentangan bukannya memindai melalui hard drive Anda pada saat itu.Jadi kelebihannya adalah sangat cepat dibandingkan dengan pemindaian hard drive. The downside adalah bahwa database lokasi (locatedb) tidak 'hidup' jadi hanya dapat digunakan untuk file yang ada 'pada' pemindaian terakhir.
Untuk memperbarui locatedb sekarang jalankan
updatedb
(atausudo updatedb
jika perlu)btw saya hanya berlari
sudo updatedb
secara lokal dan butuh 3 1/2 detik! Saya punya 31.000 file.sumber
Seperti yang orang lain tunjukkan, cari mungkin alat yang lebih baik untuk pencari yang lebih sederhana.
Namun, untuk pencarian yang lebih kompleks, Anda mungkin terjebak dengan find.
Salah satu cara untuk mempercepat menemukan adalah dengan mempersempit direktori di mana file Anda berada daripada mencari semua direktori root.
sumber
untuk operasi pencarian tunggal; Saya tidak menemukan speedup; kecuali mencoba mempersempit pencarian menggunakan
find
opsi.Namun; jika Anda ingin melakukan beberapa
find
operasi pada set file yang sama ; Saya mendapat speedup yang signifikan mengisi file sementara dengan semua nama file dan menggunakangrep
. Tentu saja ini tidak memperhitungkan file akun yang ditambahkan atau dihapus.sumber