Perintah which, whereis, locate Linux: 3 Perintah untuk Mengecek Lokasi (Jalur) File

Kadang Anda ingin mengedit httpd.conf tetapi tidak tahu di mana file itu berada, atau ada perintah bernama sama di dua tempat sehingga bingung mana yang dijalankan. Perintah which Linux menemukan file yang benar-benar dijalankan, perintah whereis Linux menemukan file yang dapat dieksekusi beserta folder konfigurasi · manual, dan perintah locate menemukan semua jalur yang mengandung nama tersebut. Perbedaan ketiga perintah ini dibandingkan dalam tabel, dan Anda bisa mengetiknya langsung di server virtual di dalam browser.
Di AlmaLinux 9.8, which ada di paket which 2.21 dan whereis di paket util-linux 2.37.4, sehingga keduanya bisa langsung dipakai, sedangkan locate memerlukan paket mlocate 0.26 yang dipasang terpisah.
✅ Perbedaan which · whereis · locate
Ketiga perintah ini mencari di tempat yang berbeda. which dan whereis langsung menelusuri folder tertentu saat itu juga, sedangkan locate mencari nama di daftar file (DB) yang sudah dibuat sebelumnya.
| Perintah | Yang dicari | Lokasi pencarian | File baru |
|---|---|---|---|
| which | Satu file perintah yang dijalankan, serta alias | Folder yang terdaftar di PATH | Langsung ditemukan |
| whereis | File yang dapat dieksekusi · folder konfigurasi · manual | Folder tertentu seperti /usr/bin · /etc · /usr/share/man | Langsung ditemukan |
| locate | Semua file dan folder yang mengandung nama tersebut | DB yang dibuat sebelumnya (/var/lib/mlocate/mlocate.db) | Ditemukan setelah updatedb |
Jika httpd yang sama dicari dengan which dan whereis, perbedaannya langsung terlihat.
~]# which httpd
/usr/sbin/httpd
~]# whereis httpd
httpd: /usr/sbin/httpd /usr/lib64/httpd /etc/httpd /usr/share/httpd /usr/share/man/man8/httpd.8.gzlocate menampilkan semua jalur yang cocok meskipun hanya sebagian namanya, jadi jika Anda mengetik [locate httpd.conf], yang muncul bukan hanya file konfigurasi, tetapi juga manual (httpd.conf.5.gz) dan salinan backup.
Di server virtual di bawah, pilih which · whereis · locate di sebelah kiri untuk mengganti chip, lalu klik chip untuk mengetikkan perintahnya. Anda juga bisa mengetik langsung dengan keyboard.
Untuk mencari file berdasarkan ukuran atau tanggal modifikasi, bukan berdasarkan nama, gunakan perintah find, sedangkan jalur folder tempat Anda berada saat ini dicek dengan perintah pwd.
✅ Perintah which Linux
which menelusuri folder yang terdaftar di PATH satu per satu dari depan, lalu menampilkan satu file yang dapat dieksekusi yang pertama kali ditemukan. File inilah yang benar-benar dijalankan saat Anda mengetik perintah tersebut.
Di AlmaLinux, bash meneruskan daftar alias ke which, sehingga untuk perintah yang memiliki alias, alias dan file aslinya ditampilkan bersama. Jika tidak ada di mana pun dalam PATH, yang muncul adalah [no perintah in (PATH)].
~]# which ll
alias ll='ls -l --color=auto'
/usr/bin/ls
~]# which htop
/usr/bin/which: no htop in (/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)Praktis hanya ada satu opsi, yaitu -a. Jika nama yang sama ada di dua folder dalam PATH, keduanya ditampilkan, dan yang muncul paling atas adalah yang benar-benar dijalankan.
~]# which ping
/usr/sbin/ping
~]# which -a ping
/usr/sbin/ping
/usr/bin/pingDi AlmaLinux 9.8, /usr/sbin/ping adalah tautan yang menunjuk ke /usr/bin/ping, jadi hasilnya sama. Jika program yang Anda pasang sendiri ada di /usr/local/bin, program itu dijalankan lebih dulu daripada yang ada di /usr/bin karena urutan PATH.
[which cd] menampilkan /usr/bin/cd, tetapi saat Anda mengetik cd di shell, yang dijalankan adalah perintah bawaan shell, bukan file ini. Untuk memastikan apakah suatu perintah adalah perintah bawaan, gunakan [type cd]; hasilnya [cd is a shell builtin].
✅ Perintah whereis Linux
whereis mencari file yang dapat dieksekusi beserta manualnya berdasarkan nama perintah. Tanpa memedulikan PATH, whereis menelusuri folder tertentu seperti /usr/bin · /usr/sbin · /usr/lib64 · /etc · /usr/share, sehingga folder konfigurasi dengan nama yang sama (/etc/httpd) pun ikut muncul.
| Opsi | Penjelasan | |
|---|---|---|
| -b | Hanya bagian file yang dapat dieksekusi. Untuk httpd: /usr/sbin/httpd dan /usr/lib64/httpd · /etc/httpd · /usr/share/httpd | |
| -m | Hanya manual (/usr/share/man · /usr/share/info) | |
| -s | Hanya sumber. Pada instalasi default AlmaLinux 9.8, yang muncul hanya namanya, seperti [httpd:] | |
| -l | Daftar folder yang ditelusuri whereis |
~]# whereis -b httpd
httpd: /usr/sbin/httpd /usr/lib64/httpd /etc/httpd /usr/share/httpd
~]# whereis -m httpd
httpd: /usr/share/man/man8/httpd.8.gz
~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1ossl.gz /usr/share/man/man1/passwd.1.gzJika yang dicari tidak ada, yang muncul hanya namanya, seperti [htop:]. which mengembalikan kode keluar 1 jika tidak menemukan apa pun, sedangkan whereis mengembalikan 0, jadi gunakan which untuk memeriksa di dalam skrip apakah sesuatu sudah terpasang.
✅ Perintah locate Linux
locate tidak menelusuri disk, melainkan mencari nama di DB yang sudah dibuat sebelumnya. Karena itu locate cepat, tetapi tidak bisa menemukan file yang dibuat setelah DB dibuat.
~]# dnf -y install mlocate
~]# updatedbJika langsung dijalankan tepat setelah instalasi, DB belum ada sehingga muncul [locate: can not stat () `/var/lib/mlocate/mlocate.db’: No such file or directory]; DB akan dibuat setelah updatedb dijalankan sekali. Setelah itu, mlocate-updatedb.timer membuat ulang DB sekali sehari.
File yang baru dibuat tidak muncul sebelum updatedb dijalankan, dan file yang sudah dihapus tetap muncul sampai updatedb dijalankan. Untuk melihat hanya file yang ada saat ini, tambahkan -e.
~]# touch report.txt
~]# locate report.txt
~]# updatedb
~]# locate report.txt
/root/work/report.txt
~]# rm -f report.txt
~]# locate report.txt
/root/work/report.txt
~]# locate -e report.txtPRUNEPATHS di /etc/updatedb.conf berisi /tmp · /var/tmp · /mnt · /media, sehingga file di folder-folder ini tidak muncul meskipun updatedb sudah dijalankan.
🔲 Opsi Perintah locate
| Opsi | Penjelasan | |
|---|---|---|
| -i | Mencari tanpa membedakan huruf besar/kecil | |
| -c | Hanya jumlah hasil, bukan jalurnya | |
| -l= -n | Tambahkan angka di belakangnya untuk membatasi jumlah hasil. -l 3 | |
| -b | Hanya mencari di nama file pada ujung jalur | |
| -e | Mengecualikan file yang ada di DB tetapi sekarang sudah tidak ada | |
| -S | Info DB (jumlah folder · jumlah file · ukuran) | |
| -r | Mencari dengan regex. locate -r “httpd.conf$” |
ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.