Saya mencoba mencari semua salinan example.filenamedi server FreeBSD saya. Apa cara terbaik / termudah / paling efisien untuk melakukan ini?
Saya mencoba mencari semua salinan example.filenamedi 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 updatedbterakhir berjalan (biasanya malam sebelum di bawah kendali pekerjaan cron).
Anda dapat menjalankan updatedbdengan tangan, tetapi itu bahkan lebih lambat dari yang finddisarankan 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 locatelayanan mungkin bermanfaat, karena locate(1)jauh lebih cepat.
sudo periodic weeklymemperbarui locatebasis 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.
locateSeperti yang disebutkan lainnya, locateadalah 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
locatebasis dataDatabase yang digunakan locateharus mutakhir. Setelah melakukan instalasi atau unduhan yang mungkin berisi file yang Anda inginkan, Anda harus memperbarui locatedatabase.
Basis locatedata 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.locatenaskah.
Cara teraman termudah untuk memaksa pembaruan awal locatedatabase 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 locatebasis data, Anda mungkin mendapat pesan tentang tidak aman, mengungkapkan nama semua file sistem Anda ke pengguna mana pun di sistem FreeBSD. Menggunakan periodicrute 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.