Linux which, whereis, locate: Dosya konumunu (yolunu) bulan 3 komut

Satış ortaklığı bildirimi v3.1
Satış ortaklığı bildirimi v3.2 (yalnızca mobil)
Test ortamıRHEL ailesiAlmaLinux 9.8root hesabı07.10.2026'da kontrol edildi
Arama komutlarıwhichwhereislocate

httpd.conf'u düzenlemek istersiniz ama dosyanın nerede olduğunu bilmezsiniz ya da aynı adlı bir komut iki yerde vardır ve hangisinin çalıştığı karışır. Linux which komutu gerçekten çalışan dosyayı, Linux whereis komutu çalıştırılabilir dosyayla birlikte ayar klasörlerini ve kılavuzları, locate komutu ise adı geçen tüm yolları bulur. Üç komutun farkını tabloda karşılaştırdık; tarayıcınızdaki sanal sunucuda kendiniz de deneyebilirsiniz.

AlmaLinux 9.8'de which, which 2.21 paketinde, whereis ise util-linux 2.37.4 paketinde gelir, bu yüzden ikisi de baştan kullanılabilir; locate için mlocate 0.26 paketini ayrıca kurmanız gerekir.

✅ which · whereis · locate farkı

Üç komut farklı yerlere bakar. which ve whereis belirli klasörleri o anda tarar; locate ise önceden oluşturulmuş dosya listesinde (DB) adı arar.

KomutBulduğu şeyBaktığı yerYeni dosyalar
whichÇalışan tek komut dosyası ve takma adlar (alias)PATH'te kayıtlı klasörlerHemen bulur
whereisÇalıştırılabilir dosya · ayar klasörleri · kılavuzlar/usr/bin · /etc · /usr/share/man gibi belirli klasörlerHemen bulur
locateAdı geçen tüm dosya ve klasörlerÖnceden oluşturulmuş DB (/var/lib/mlocate/mlocate.db)updatedb sonrasında bulur

Aynı httpd'yi which ve whereis ile arayınca fark hemen görünür.

~]# 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.gz

locate adın yalnızca bir kısmı uysa bile tüm yolları gösterir; bu yüzden [locate httpd.conf] yazınca yalnızca ayar dosyası değil, kılavuz (httpd.conf.5.gz) ve yedek kopyalar da çıkar.

Aşağıdaki sanal sunucuda soldan which · whereis · locate seçince çipler değişir; çipe tıklayınca o komut yazılır. Klavyeden de yazabilirsiniz.

Dosya konumu komutları simülatörüAlmaLinux 9.8
[root@server work]#
Yalnızca tarayıcınızda çalışır, gerçek sunucuya dokunmaz. Soldan bir komut seçince aşağıdaki çipler değişir; çipe tıklayınca o komut yazılır. Aynı httpd'yi üç komutla arayıp sonuçları karşılaştırın; locate'te yeni bir dosya oluşturup updatedb öncesinde ve sonrasında arayın. Karışırsa [Start over] düğmesine basın; uknew help yazarak kullanılabilen komutları görebilirsiniz.

Dosyaları ada göre değil boyut ya da değişiklik tarihine göre ararken find komutunu kullanın; bulunduğunuz klasörün yolunu pwd komutuyla görün.

✅ Linux which komutu

which, PATH'teki klasörleri baştan sırayla tarar ve bulduğu ilk çalıştırılabilir dosyayı gösterir. Komutu yazdığınızda gerçekten çalışan dosya budur.

AlmaLinux'taki bash, takma ad listesini which'e verir; bu yüzden takma adı olan bir komutta hem takma ad hem gerçek dosya çıkar. PATH'te hiçbir yerde yoksa [no command in (PATH)] çıkar.

~]# 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)

Seçenek fiilen yalnızca -a'dır. Aynı ad PATH'teki iki klasörde varsa ikisini de gösterir; en üstteki gerçekten çalışandır.

~]# which ping
/usr/sbin/ping
~]# which -a ping
/usr/sbin/ping
/usr/bin/ping

AlmaLinux 9.8'de /usr/sbin/ping, /usr/bin/ping'i gösteren bir bağlantıdır; sonuç aynıdır. Kendi kurduğunuz bir program /usr/local/bin'deyse PATH sırası nedeniyle /usr/bin'dekinden önce çalışır.

[which cd] /usr/bin/cd'yi gösterir, ama kabukta cd yazınca bu dosya değil kabuğun yerleşik komutu çalışır. Yerleşik komut olup olmadığını [type cd] ile kontrol edin; [cd is a shell builtin] çıkar.

✅ Linux whereis komutu

whereis komut adıyla çalıştırılabilir dosyayı ve kılavuzları birlikte bulur. PATH'ten bağımsız olarak /usr/bin · /usr/sbin · /usr/lib64 · /etc · /usr/share gibi belirli klasörleri taradığı için aynı adlı ayar klasörü (/etc/httpd) bile çıkar.

SeçenekAçıklama
-bYalnızca ikili dosyalar. httpd için /usr/sbin/httpd ve /usr/lib64/httpd · /etc/httpd · /usr/share/httpd
-mYalnızca kılavuzlar (/usr/share/man · /usr/share/info)
-sYalnızca kaynaklar. AlmaLinux 9.8 varsayılan kurulumunda [httpd:] gibi yalnızca ad çıkar
-lwhereis'in taradığı klasör listesi
~]# 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.gz

Bir şey bulunamazsa [htop:] gibi yalnızca ad çıkar. which bulamayınca çıkış kodu 1, whereis ise 0 döndürür; bu yüzden betikte kurulu olup olmadığını which ile kontrol edin.

✅ Linux locate komutu

locate diski taramaz, önceden oluşturulmuş DB'de adı arar. Bu yüzden hızlıdır, ama DB oluşturulduktan sonra yaratılan dosyaları bulamaz.

~]# dnf -y install mlocate
~]# updatedb

Kurulumdan hemen sonra çalıştırırsanız henüz DB olmadığından [locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory] çıkar; updatedb'yi bir kez çalıştırınca oluşur. Ondan sonra mlocate-updatedb.timer DB'yi günde bir kez yeniden oluşturur.

Yeni dosya updatedb'den önce görünmez, silinen dosya ise o zamana kadar görünmeye devam eder. Yalnızca şu an var olan dosyaları görmek için -e ekleyin.

~]# 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.txt

/etc/updatedb.conf içindeki PRUNEPATHS'te /tmp · /var/tmp · /mnt · /media bulunduğundan bu klasörlerdeki dosyalar updatedb çalıştırılsa da çıkmaz.

🔲 locate komutu seçenekleri

SeçenekAçıklama
-iBüyük-küçük harfi yok say
-cYollar yerine yalnızca eşleşme sayısı
-l= -nArkasına sayı koyarak sonuçları o kadarla sınırla. -l 3
-bYalnızca yolun sonundaki dosya adında ara
-eDB'de olup artık var olmayan dosyaları çıkar
-SDB bilgisi (klasör · dosya · boyut)
-rDüzenli ifadeyle ara. locate -r "httpd.conf$"

ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İnsan olduğunuzu kanıtlayın: 5   +   6   =