Salah satu operasi yang paling umum ketika bekerja di Linux adalah mencari file dan direktori. Pada sistem Linux, ada beberapa perintah yang memungkinkan Anda untuk mencari file, Perintahfind dan locate adalah yang paling banyak digunakan.

Perintah locate adalah cara tercepat dan termudah untuk mencari file dan direktori dengan parameter nama.

Dalam tutorial ini, kami akan menjelaskan cara menggunakan perintah locate.

Install locate (locate command not found)

Bergantung pada distribusi dan bagaimana sistem disediakan, paket locate mungkin belum diinstal pada sistem Linux Anda.

Untuk memeriksa apakah utilitas locate sudah diinstal di sistem Anda, buka terminal, ketik locate, dan tekan Enter. Jika paket sudah diinstal sebelumnya, sistem akan menampilkan locate: no pattern to search for specified, jika utilitas locate belum terinstal, Anda akan melihat pesan seperti locate command not found.

Jika locate belum terinstall, Anda dapat menginstalnya dengan mudah menggunakan manajer paket distro sistem operasi Anda.

Install locate di Ubuntu dan Debian

sudo apt update
sudo apt install mlocate

Install locate di CentOS dan Fedora

sudo yum install mlocate

Cara Kerja Perintah locate

Perintah locate mencari pola yang diberikan melalui file database yang dihasilkan oleh perintah updatedb. Hasil yang ditemukan ditampilkan di layar per baris.

Selama instalasi paket mlocate,cron job dibuat yang menjalankan perintah updatedb setiap 24 jam. Ini memastikan database diperbarui secara berkala. Untuk informasi lebih lanjut tentang cron job, periksa file /etc/cron.daily/mlocate.

Basis data dapat diperbarui secara manual dengan menjalankan perintah updatedb sebagai root atau user dengan hak sudo:

sudo updatedb

Proses pembaruan akan memakan waktu, tergantung pada jumlah file dan direktori dan kecepatan sistem Anda.

Salah satu kelemahan dari metode ini adalah, File yang dibuat setelah update database tidak akan ditampilkan di hasil pencarian. Anda perlu melakukan perintah updatedb lagi setelah menambahkan file atau direktori baru.

Dibandingkan dengan perintah find yang lebih baik dalam mencari sistem file, locate beroperasi jauh lebih cepat tetapi tidak memiliki banyak fitur dan hanya dapat mencari dengan parameter nama file.

Cara Menggunakan Perintah locate

Sintaks untuk perintah locate adalah sebagai berikut:

locate [OPTION] POLA_PENCARIAN...

Dalam bentuknya yang paling dasar, ketika digunakan tanpa opsi apa pun, perintah locate akan mencetak jalur absolut dari semua file dan direktori yang cocok dengan pola pencarian asalkan user tersebut memiliki hak read (baca) pada file atau direktori.

Misalnya untuk mencari file bernama .bashrc , Anda dapat mengetik perintah :

locate .bashrc

Output akan menyertakan nama semua file yang berisi string .bashrc dalam namanya:

/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxid/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

File /root/.bashrc tidak akan ditampilkan karena kami menjalankan perintah sebagai user biasa yang tidak memiliki izin akses ke direktori /root.

Opsi Tambahan Perintah locate

Jika daftar hasil pencarian cukup panjang, untuk memudahkan mengelola pencarian, gunakan output ke perintah less:

locate .bashrc | less

Perintah locate juga menerima pola yang mengandung karakter globbing seperti karakter wildcard *. Ketika pola tidak mengandung karakter spesial, perintah locate akan mencari berdasarkan *PATTERN*, itulah sebabnya dalam contoh sebelumnya semua file yang terdapat pada pola pencarian dalam namanya ditampilkan.

Wildcard adalah simbol yang digunakan untuk mewakili nol, satu atau lebih karakter. Misalnya, untuk mencari semua files .md pada sistem Anda akan menggunakan:

locate *.md

Untuk membatasi hasil pencarian gunakan opsi -n diikuti oleh jumlah hasil yang ingin Anda tampilkan. Misalnya, perintah berikut akan mencari semua file .py dan hanya menampilkan 10 hasil:

locate -n 10 *.py

Secara default, locate melakukan pencarian peka huruf besar kecil. Opsi -i (--ignore-case) akan memberitahu locate untuk mengabaikan case dan menjalankan pencarian case-sensitive.

locate -i readme.md
/home/linuxid/p1/readme.md
/home/linuxid/p2/README.md
/home/linuxid/p3/ReadMe.md

Untuk menampilkan jumlah semua entri yang cocok, gunakan opsi -c (--count). Perintah berikut akan mengembalikan jumlah semua file yang mengandung .bashrc dalam namanya:

locate -c .bashrc
6

Secara default, locate tidak memeriksa apakah file yang ditemukan masih ada di file sistem. Jika Anda menghapus file setelah update database terbaru jika file tersebut cocok dengan pola pencarian, maka file tersebut  akan dimasukkan dalam hasil pencarian.

Untuk menampilkan hanya nama-nama file yang ada pada saat pencarian dengan perintah locate dijalankan, gunakan opsi -e (--existing). Misalnya, berikut ini hanya akan mengembalikan file .json yang ada:

locate -e *.json

Jika Anda perlu menjalankan pencarian yang lebih kompleks, Anda dapat menggunakan opsi -r (--regexp) yang memungkinkan Anda untuk mencari menggunakan regex dasar alih-alih pola. Opsi regex ini dapat ditentukan beberapa kali.
Misalnya, untuk mencari semua file .mp4 dan .avi di sistem Anda dan abaikan case Anda akan menjalankan:

locate --regex -i "(\.mp4|\.avi)"

Kesimpulan

Perintah locate mencari sistem file untuk file dan direktori yang namanya cocok dengan pola yang diberikan. Sintaks perintahnya mudah diingat dan hasilnya ditampilkan hampir secara instan.

Untuk informasi lebih lanjut tentang semua opsi locate yang tersedia, ketik man locate di terminal Anda.