flag 'find' lain yang mungkin sesuai, tergantung pada kebutuhan: -type f (tidak akan repot dengan direktori atau symlink dengan nama yang sama) -l (untuk menampilkan detail seperti ukuran file, misalnya jika file memiliki nama tetapi isinya berbeda)
Zac Thompson
19
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.
Locate hanya berfungsi jika Anda memiliki layanan yang berjalan untuk membangun loc db (lupakan apa namanya). Itu juga dapat mengalami penundaan waktu (dalam hal file yang Anda cari mungkin telah ditambahkan sejak build terakhir).
cletus
Suntingan dan komentar menyeberang. Keren. Anda tentu saja benar dalam kedua hal.
dmckee --- ex-moderator kitten
4
Jika Anda menemukan diri Anda melakukan find /atau pada pohon besar lebih dari sekali seminggu, maka menjalankan locatelayanan mungkin bermanfaat, karena locate(1)jauh lebih cepat.
Drew Stephens
@cletus Running sudo periodic weeklymemperbarui locatebasis data. Jalankan setelah instalasi atau unduhan yang mungkin berisi file yang Anda inginkan.
Basil Bourque
2
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.
Seperti 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
Perbarui locatebasis data
Database 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.
Yup, yang cocok dengan semuanya kemudian membuang semuanya kecuali untuk satu nama yang Anda cari. Sebagai gantinya, Anda cukup melakukan 'find -name "example.filename"' yang melakukan hal-hal yang persis sama tanpa terlebih dahulu mencetak semuanya dan tanpa menjalankan proses grep tambahan.
Jawaban:
sumber
Jauh lebih cepat daripada
find
, jika Anda menjalankan layanan loc, dan hanya menemukan file yang ada pada saatupdatedb
terakhir berjalan (biasanya malam sebelum di bawah kendali pekerjaan cron).Anda dapat menjalankan
updatedb
dengan tangan, tetapi itu bahkan lebih lambat dari yangfind
disarankan oleh cletus , dan membutuhkan root. Saya terkadang memperbarui database dengan tangan setelah menginstal banyak barang baru.sumber
find /
atau pada pohon besar lebih dari sekali seminggu, maka menjalankanlocate
layanan mungkin bermanfaat, karenalocate(1)
jauh lebih cepat.sudo periodic weekly
memperbaruilocate
basis data. Jalankan setelah instalasi atau unduhan yang mungkin berisi file yang Anda inginkan.Jika Anda sudah menemukan loc (alias slocate), maka
loc menjalankan pekerjaan cron setiap malam yang mengindeks ulang semua file pada mesin Anda. Itu tidak selalu up to date karena alasan itu.
sumber
Terkadang Anda ingin mencari file di level direktori tertentu. Dalam hal ini akan lebih mudah menggunakan wildcard shell:
Jelas ini hanya berfungsi jika Anda memiliki struktur direktori yang kaku.
sumber
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.Agar case-insensitive, tambahkan
-i
.Perbarui
locate
basis dataDatabase yang digunakan
locate
harus mutakhir. Setelah melakukan instalasi atau unduhan yang mungkin berisi file yang Anda inginkan, Anda harus memperbaruilocate
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.Atau, Anda bahkan bisa memaksa semua pekerjaan rutin dilakukan. Anda mungkin ingin melakukan ini segera setelah menyiapkan sistem FreeBSD baru.
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. Menggunakanperiodic
rute menghindari masalah ini.sumber
Jika Anda memiliki basis data lokasi yang terbaru, maka cukup:
sumber
Terkadang saya melakukannya
mungkin sangat tidak efisien.
sumber