GNU/Linux >> Belajar Linux >  >> Linux

7 Contoh Perintah Cari Lokasi Linux yang Praktis – mlocate dan diperbaruib

Saat Anda perlu mencari beberapa file, Anda biasanya menggunakan perintah find. find adalah utilitas pencarian yang bagus tetapi lambat.

Namun menemukan dapat mencari file dengan sangat cepat.

Meskipun perintah locate bekerja dengan sangat cepat, ia masih belum mengalahkan perintah find karena memiliki beberapa keterbatasan.

Artikel ini menjelaskan semua yang perlu Anda ketahui tentang perintah locate .

Bagaimana Cari Perintah Bekerja? – updatedb dan updatedb.conf

Ketika kami mengatakan bahwa pencarian lokasi sangat cepat, maka pertanyaan pertama yang muncul di benak kami adalah apa yang membuat pencarian lokasi begitu cepat?.

Nah, locate tidak mencari file di disk melainkan mencari jalur file di database.

Basis data adalah file yang berisi informasi tentang file dan jalurnya di sistem Anda. Lokasi file database terletak di:

/var/lib/mlocate/mlocate.db

Pertanyaan logis berikutnya adalah, apa yang membuat basis data mlocate ini diperbarui?

Nah, ada utilitas lain yang dikenal sebagai updatedb . Saat Anda menjalankan updatedb, ia memindai seluruh sistem dan memperbarui file database mlocate.db.

Jadi salah satu batasan dari perintah 'locate' adalah ketergantungannya pada database yang dapat diperbarui oleh utilitas lain 'updatedb'. Oleh karena itu, untuk mendapatkan hasil terbaru dan andal dari perintah 'lokasi', basis data tempat ia bekerja harus diperbarui secara berkala.

Kami juga dapat mengonfigurasi utilitas 'updatedb' sesuai kebutuhan kami. Ini dapat dicapai dengan memperbarui updateb.conf. Ini adalah file konfigurasi yang terupdateb membaca sebelum memperbarui database. updatedb.conf terletak di bawah /etc/ :

# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS="yes"
PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media"
PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"

File updatedb.conf berisi informasi dalam bentuk VARIABLES=VALUES. Variabel ini dapat diklasifikasikan menjadi :

  • PRUNEFS :Daftar jenis sistem file yang dipisahkan spasi (seperti yang digunakan di /etc/mtab) yang tidak boleh dipindai oleh updatedb. Pencocokan jenis sistem file tidak peka huruf besar-kecil. Secara default, tidak ada jenis sistem file yang dilewati. Saat pemindaian sistem file dilewati, semua sistem file yang dipasang di subpohon juga dilewati, meskipun jenisnya tidak cocok dengan entri apa pun di PRUNEFS.
  • PRUNENAMES :Daftar nama direktori yang dipisahkan spasi (tanpa jalur) yang tidak boleh dipindai oleh updateb. Secara default, tidak ada nama direktori yang dilewati. Perhatikan bahwa hanya direktori yang dapat ditentukan, dan tidak ada mekanisme pola (mis. globbing) yang digunakan.
  • PRUNEPATHS :Daftar nama jalur direktori yang dipisahkan spasi yang tidak boleh dipindai oleh yang diperbaruib. Setiap nama jalur harus persis dalam bentuk direktori yang akan dilaporkan oleh lokasi. Secara default, tidak ada jalur yang dilewati.
  • PRUNE_BIND_MOUNTS :  Salah satu dari  string  0,  tidak,  1  atau ya. Jika PRUNE_BIND_MOUNTS adalah 1 atau ya, pengikatan mount tidak dipindai oleh updateb. Semua sistem file yang dipasang di subpohon pengikatan pengikatan juga dilewati, bahkan jika itu bukan pemasangan pengikat. Secara default, pengikatan mount tidak dilewati.

Perhatikan bahwa semua informasi konfigurasi di atas juga dapat diubah atau diperbarui melalui opsi baris perintah ke utilitas 'updatedb'.

Sebelum Anda mencoba mencari contoh perintah, pastikan untuk menjelajahi contoh perintah find.

Contoh Praktis Perintah Cari

1. Cari File menggunakan locate

Untuk mencari file tertentu menggunakan locate, lakukan saja hal berikut

$ locate sysctl.conf
/etc/sysctl.conf
/usr/share/man/man5/sysctl.conf.5.gz

Perintah berikut mencari httpd.conf di seluruh sistem.

$ locate httpd.conf
/etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf.bak

Anda juga dapat menggunakan "cari -0" untuk menampilkan semua output dalam satu baris. Misalnya:

$ locate -0 httpd.conf

2. Hanya tampilkan Hitungan

Untuk menghitung jumlah entri yang cocok, gunakan locate -c seperti yang ditunjukkan di bawah ini.

$ locate -c httpd.conf
3

3. Gunakan updatedb untuk Menyegarkan Database mlocate

Misalkan Anda mengambil cadangan dari file yang ada:

# cd /etc
# cp sysctl.conf sysctl.conf.orig

Jika Anda mencoba mencari sysctl.conf menggunakan utilitas 'locate', Anda tidak akan menemukan sysctl.conf.orig.

# locate sysctl.conf
/etc/sysctl.conf
/usr/share/man/man5/sysctl.conf.5.gz

Alasannya adalah bahwa setelah sysctl.conf.orig membuat database tempat utilitas locate bekerja tidak diperbarui. Jadi mari perbarui database menggunakan perintah 'updatedb' dan jalankan kembali locate:

$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

Harap dicatat bahwa update db perlu dijalankan sebagai root.

# updatedb

Setelah updatedb, jika Anda menjalankan locate, Anda akan menemukan file sysctl.conf.orig.

# locate sysctl.conf
/etc/sysctl.conf
/etc/sysctl.conf.orig
/usr/share/man/man5/sysctl.conf.5.gz

4. Ubah Lokasi Database mlocate

Database default yang membaca utilitas locate adalah /var/lib/mlocate/mlocate.db, tetapi jika Anda ingin menautkan perintah locate dengan beberapa database lain yang disimpan di beberapa lokasi lain, gunakan opsi -d.

Misalnya :

$ locate -d <new db path> <filename>

Perhatikan bahwa jalur basis data juga dapat diambil dari stdin dan jika jalur kosong disebutkan maka basis data default akan dipilih.

5. Periksa Keberadaan File

Sekarang anggaplah file sysctl.conf.orig yang kita buat pada contoh 3 di atas telah terhapus, dan jika Anda mencoba mencari sysctl.conf, file sysctl.conf.orig akan tetap ditampilkan.

# cd /etc
# rm sysctl.conf.orig

# locate sysctl.conf
/etc/sysctl.conf
/etc/sysctl.conf.orig
/usr/share/man/man5/sysctl.conf.5.gz

Seperti yang Anda lihat dari output di atas, perintah locate menunjukkan sysctl.conf.orig bahkan setelah file dihapus. Hasil ini menyesatkan.

Tentu saja, Anda dapat menjalankan updatedb, dan mencoba mencari lagi, yang akan menunjukkan hasil yang tepat.

Atau, Anda bisa menggunakan 'locate -e', yang hanya akan menampilkan file yang ada di sistem, saat Anda menjalankan perintah locate. yaitu Bahkan ketika file ada di mlocate.db, itu akan tetap memverifikasi untuk memastikan file secara fisik ada di sistem sebelum menampilkannya.

# locate -e sysctl.conf
/etc/sysctl.conf
/usr/share/man/man5/sysctl.conf.5.gz

6. Abaikan Kasus di Cari Keluaran

Perintah locate secara default dikonfigurasi untuk menerima nama file dengan cara yang peka huruf besar-kecil. Untuk membuat hasil tidak peka huruf besar/kecil, kita dapat menggunakan opsi -i :

Dalam contoh berikut, kami membuat dua file dengan huruf kecil dan huruf besar.

# cd /tmp
# touch new.txt NEW.txt

# updatedb

Jika Anda menggunakan perintah locate hanya dengan huruf kecil, itu hanya akan menemukan file huruf kecil.

# locate new.txt
/tmp/new.txt

Gunakan locate -i, yang akan mengabaikan huruf besar, dan mencari file huruf kecil dan huruf besar.

$ locate -i new.txt
/tmp/NEW.txt
/tmp/new.txt
/usr/share/doc/samba-common/WHATSNEW.txt.gz

7. Batasi Lokasi Keluaran

Pada contoh berikut, perintah locate menampilkan beberapa entri.

$ locate passwd
/etc/passwd
/etc/passwd-
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
/etc/pam.d/passwd
/etc/security/opasswd
/etc/vsftpd/passwd
/lib64/security/pam_unix_passwd.so
/usr/bin/gpasswd
/usr/bin/htpasswd
/usr/bin/ldappasswd
/usr/bin/mksmbpasswd.sh
/usr/bin/passwd
..

Jika Anda hanya ingin menampilkan sejumlah record tertentu, gunakan opsi locate -l dan tentukan berapa banyak record yang ingin Anda lihat pada output perintah locate.

Misalnya, berikut ini hanya menampilkan 5 record (Bahkan ketika perintah locate menemukan beberapa record..)

$ locate -l 5 passwd
/etc/passwd
/etc/passwd-
/etc/dovecot/conf.d/auth-passwdfile.conf.ext
/etc/pam.d/passwd
/etc/security/opasswd

Temukan Contoh Perintah

Seperti yang Anda lihat, contoh perintah locate cukup mudah digunakan. Namun, untuk mendapatkan hasil yang andal, dan untuk melakukan beberapa operasi pencarian yang rumit, Anda juga harus mengetahui cara menggunakan perintah find secara efektif.

  • Bu, aku menemukannya! — 15 Contoh Perintah Temukan Linux yang Praktis
  • Ayah, saya menemukannya!, 15 Contoh Perintah Temukan Linux yang Luar Biasa (Part2)

Linux
  1. Perintah Linux - Gambaran Umum dan Contoh

  2. Perintah cp di Linux:7 Contoh Praktis

  3. 5 Contoh Praktis Perintah dd di Linux

  1. Perintah Linux Cat:Penggunaan dan Contohnya

  2. Perintah Shutdown Linux:5 Contoh Praktis

  3. 10 Contoh Perintah Linux nm Praktis

  1. Linux Cari Perintah untuk Pemula (8 Contoh)

  2. 16 Contoh Praktis perintah LS Linux untuk Pemula

  3. temukan Contoh Perintah di Linux