Saya mencoba mencari semua salinan example.filename
di server FreeBSD saya. Apa cara terbaik / termudah / paling efisien untuk melakukan ini?
Saya mencoba mencari semua salinan example.filename
di server FreeBSD saya. Apa cara terbaik / termudah / paling efisien untuk melakukan ini?
Jawaban:
find / -name example.filename
locate filename
Jauh lebih cepat daripada find
, jika Anda menjalankan layanan loc, dan hanya menemukan file yang ada pada saat updatedb
terakhir berjalan (biasanya malam sebelum di bawah kendali pekerjaan cron).
Anda dapat menjalankan updatedb
dengan tangan, tetapi itu bahkan lebih lambat dari yang find
disarankan oleh cletus , dan membutuhkan root. Saya terkadang memperbarui database dengan tangan setelah menginstal banyak barang baru.
find /
atau pada pohon besar lebih dari sekali seminggu, maka menjalankan locate
layanan mungkin bermanfaat, karena locate(1)
jauh lebih cepat.
sudo periodic weekly
memperbarui locate
basis data. Jalankan setelah instalasi atau unduhan yang mungkin berisi file yang Anda inginkan.
Jika Anda sudah menemukan loc (alias slocate), maka
locate example.filename
loc menjalankan pekerjaan cron setiap malam yang mengindeks ulang semua file pada mesin Anda. Itu tidak selalu up to date karena alasan itu.
Terkadang Anda ingin mencari file di level direktori tertentu. Dalam hal ini akan lebih mudah menggunakan wildcard shell:
ls /data/*/example.filename
Jelas ini hanya berfungsi jika Anda memiliki struktur direktori yang kaku.
locate
Seperti yang disebutkan lainnya, locate
adalah cara cepat untuk menemukan file. Perintah ini menggunakan indeks file dan nama folder yang telah dikompilasi sebelumnya. Database nama ini dicari, alih-alih merayapi melalui sistem file Anda.
locate example.filename
Agar case-insensitive, tambahkan -i
.
locate -i eXAmPle.FileName
locate
basis dataDatabase yang digunakan locate
harus mutakhir. Setelah melakukan instalasi atau unduhan yang mungkin berisi file yang Anda inginkan, Anda harus memperbarui locate
database.
Basis locate
data pada akhirnya akan diperbarui secara otomatis oleh sistem FreeBSD Anda. Ada satu set tugas-tugas mingguan yang mencakup tugas ini. Tugas-tugas ini tercantum dalam /etc/periodic/weekly/310.locate
naskah.
Cara teraman termudah untuk memaksa pembaruan awal locate
database adalah dengan memaksa set tugas mingguan dilakukan sekarang.
sudo periodic weekly
Atau, Anda bahkan bisa memaksa semua pekerjaan rutin dilakukan. Anda mungkin ingin melakukan ini segera setelah menyiapkan sistem FreeBSD baru.
sudo periodic daily weekly monthly
Jika menggunakan jalan lain untuk memperbarui locate
basis data, Anda mungkin mendapat pesan tentang tidak aman, mengungkapkan nama semua file sistem Anda ke pengguna mana pun di sistem FreeBSD. Menggunakan periodic
rute menghindari masalah ini.
Jika Anda memiliki basis data lokasi yang terbaru, maka cukup:
locate example.filename
Terkadang saya melakukannya
find . | grep example.filename
mungkin sangat tidak efisien.