Mencari berkas dan perintah Linux: find, locate, which, dan whereis
Gunakan find untuk mencari entri berdasarkan kondisi dalam pohon direktori saat ini, dan locate untuk menelusuri basis data nama berkas yang telah dibuat. which dan whereis membantu menemukan berkas terkait perintah. Jika ingin mengetahui bagaimana Bash saat ini menafsirkan nama perintah, termasuk alias atau fungsi, gunakan type atau command -v.
Bedakan pencarian jalur dengan pencarian isi berkas. Untuk memilih baris yang cocok dalam isi teks, gunakan latihan penyaringan dan penghitungan teks berbahasa Inggris.
Mencari pada sistem berkas saat ini dengan find
find menelusuri pohon direktori dari titik awal, lalu menguji nama, jenis, ukuran, atau kondisi lain. Latihan ini memakai Bash dan GNU find sebagai pengguna biasa. Jika ~/linux-course-11-practice sudah ada, pilih nama baru dan sesuaikan jalur. Berhenti jika mkdir pertama atau cd gagal; jangan melanjutkan pada direktori lama atau lokasi yang tidak sesuai.
mkdir ~/linux-course-11-practice
cd ~/linux-course-11-practice
mkdir drafts archive
touch drafts/notes.txt drafts/todo.md archive/old.txt
Jalankan tiap langkah setelah langkah sebelumnya berhasil. Periksa posisi dengan pwd, lalu cari berkas biasa yang namanya berakhiran .txt. Tanda kutip meneruskan pola *.txt secara utuh kepada find, sehingga shell tidak lebih dahulu memperluasnya. Opsi GNU -maxdepth 2 membatasi kedalaman hingga dua tingkat dari titik awal; titik awal sendiri berkedalaman nol.
pwd
find . -maxdepth 2 -type f -name '*.txt'
Urutan keluaran dapat berbeda menurut sistem berkas, tetapi kedua jalur ini seharusnya ditemukan:
./drafts/notes.txt
./archive/old.txt
-type f memilih berkas biasa dan -name menguji pola nama. Untuk pencarian nama tanpa membedakan huruf besar dan kecil, GNU find menyediakan -iname. Direktori yang tidak dapat dibaca dapat menimbulkan galat izin; jalur yang cocok tidak membuktikan bahwa isi berkasnya boleh dibaca. Batasi titik awal sesuai kebutuhan daripada langsung mencari seluruh sistem.
Mencari dalam indeks nama dengan locate
locate mencari dalam basis data nama berkas yang telah dibangun, bukan menelusuri pohon direktori saat itu. Jika indeks tersedia, pencarian nama pada cakupan luas dapat cepat. Namun, berkas yang dibuat setelah pembaruan terakhir mungkin belum tercatat, sementara nama berkas yang sudah dihapus dapat tertinggal. Penanganan jalur yang tidak dapat diakses bergantung pada implementasi dan konfigurasinya.
locate hosts
Hasil dapat mencakup /etc/hosts maupun jalur lain yang memuat hosts; ini bukan pencarian isi berkas. Jika locate atau basis datanya belum tersedia, periksa alat distribusi dan prosedur pembaruan indeksnya. GNU Findutils menyediakan updatedb, tetapi jadwal, jalur yang dikecualikan, serta izin menjalankannya bergantung pada sistem. Pastikan hasil masih ada dengan find atau ls sebelum bertindak atas jalur tersebut.
Menemukan jalur program dan penafsiran shell
which umumnya mencari program yang dapat dijalankan dalam direktori pada variabel lingkungan PATH, yaitu daftar jalur pencarian perintah. Contoh berikut dapat menghasilkan /usr/bin/ls atau /bin/ls; hasil pastinya bergantung pada sistem.
which ls
Implementasi which berbeda-beda. Jangan menganggap hasilnya selalu mencakup alias atau fungsi yang digunakan shell Anda. Dalam Bash, perintah berikut menjelaskan penafsiran nama oleh shell saat ini secara lebih langsung:
type -a ls
command -v ls
type -a dapat menampilkan alias, fungsi, perintah bawaan, dan kandidat program dengan nama sama. command -v membantu memeriksa apakah nama dapat ditemukan oleh shell; hasilnya tidak selalu berupa jalur program eksternal. Bentuk keluaran mengikuti konfigurasi shell saat perintah dijalankan.
Alias adalah nama pengganti yang diperluas oleh shell, sedangkan fungsi adalah rangkaian perintah yang didefinisikan dalam shell. Karena keduanya dapat memakai nama ls, menemukan berkas program bernama ls saja belum menjawab apa yang dipilih ketika Anda mengetik ls pada sesi sekarang.
Memeriksa lokasi biner dan manual dengan whereis
whereis melaporkan lokasi berkas yang terkait nama perintah, termasuk program biner, sumber, dan halaman manual. whereis ls dapat menampilkan jalur program sekaligus manualnya. Tidak semua jenis berkas tersebut harus terpasang; lokasi pencarian dan hasil bergantung pada implementasi serta pengaturan.
whereis ls
| Pertanyaan | Mulai dengan | Perhatian |
|---|---|---|
| Berkas saat ini yang memenuhi kondisi | find |
Cakupan dan izin memengaruhi waktu serta galat |
| Nama berkas yang tercatat dalam indeks | locate |
Indeks dapat tertinggal dari keadaan sebenarnya |
| Jalur program dalam PATH | which |
Berbeda dari penafsiran shell secara lengkap |
| Cara shell menafsirkan nama | type -a, command -v |
Bergantung pada pengaturan shell saat ini |
| Lokasi biner atau manual perintah | whereis |
Hasil bergantung pada lingkungan |
Mencari berkas dan menafsirkan nama perintah adalah dua pekerjaan berbeda. Berkas ls yang ditemukan find belum tentu program yang dijalankan ketika Anda mengetik ls. Periksa type -a ls untuk memahami perbedaannya.
Di Ubuntu 26.04, paket plocate tersedia pada komponen universe. Jika locate belum terpasang dan repositori tersebut tersedia, gunakan sudo apt install plocate, lalu sudo updatedb untuk menyiapkan indeks. Jika paket tidak ditemukan, periksa konfigurasi repositori dan informasi paket distribusi sebelum melanjutkan. Di Rocky Linux 9, cari penyedia pada repositori aktif dengan dnf provides '*/locate', lalu pasang paket yang benar-benar dikembalikan. Jangan menebak nama paket dari distribusi lain.
updatedb menelusuri sistem dan memperbarui indeks. Lakukan percobaan pengindeksan pada mesin virtual latihan yang memang Anda kelola; sesuaikan izin dan kebijakan pengecualian jalur. Indeks tetap bukan daftar waktu nyata. Latihan find di atas tidak memerlukan pemasangan paket atau pembaruan indeks seluruh sistem.
Dokumentasi resmi
Lihat manual GNU Findutils untuk find dan locate, serta dokumentasi perintah bawaan GNU Bash untuk type dan command. Opsi whereis bergantung pada implementasi; periksa man whereis atau manual whereis util-linux.




