hangisi / whereis farkları


112

Arasındaki fark nedir whichve whereis?


Üzgünüm ama 10.5.8 OS X sistemimde hangi sonuçlar nerede ve her zaman aynı sonuçları veriyor. Belki de bu olduğunu kabul ediyorum beri çok OS X özgü soru farklı bir sonuç beklendiğini,. Belki de nerede olması gerektiği ile uyuşmuyor. En azından iki örnek (aşağıya bakınız) çalışmıyor: nerede ve nerede php her zaman aynı sonucu verir: Kimse bunu onaylayabilir mi? Snow Leopard aynı şekilde mi davranıyor?
Kurt

Evet biliyorum, bu yüzden bu soruyu sordum.
mk12

@Wolf burada (MacOS Sierra'da) farklı çıktılar veriyor whichve whereisveriyor apple.stackexchange.com/questions/259047/…
Matthew

@ mk12 Ben typeüstün olduğunu hissediyorum . Ayrıca tanımlanmış takma adları, işlevleri vb. De bilir
phil294

Yanıtlar:


121

Öğrenmeye whereisve whichkullanmaya ne dersiniz whatis?

$  whatis which
which                (1)  - shows the full path of (shell) commands

$  whatis whereis
whereis              (1)  - locate the binary, source, and manual page files for a command

Temel olarak, whereis" whichyürütülebilir " dosyaları arar , sadece çalıştırılabilir dosyaları arar.

Nadiren kullanırım whereis. Öte yandan which, özellikle senaryolarda çok kullanışlıdır. whichsorusunun cevabı nedir: Bu komut nereden geliyor?

$  which ls
/bin/ls

$  whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2

34
ne olduğunu bilmiyordum, teşekkürler.
mk12

1
BTW, "osx" etiketini kaldırdım, çünkü bu soru tüm unix varyantları için geçerlidir (Linux, BSD, Mac OS X, ... dahil)
Denilson Sá Maia

unix olarak değiştirildi
mk12

1
Bundan daha fazlası var. Sistemimde, nerede ve hangi farklı çalıştırılabilir yollar döndürüyor. Sadece çalıştığımızın yolunu bulabilirim whereis, bunun için değil which.
Jordan Reiter,

1
@ JordanReiter: Olmaz! whichgerçek yolu gösterir. whichGösterilen yolun, işaret ettiği yolun sadece bir bağlantısı olmadığından emin misiniz whereis? Belki bir kabuk takma adıdır. Kısaca, koşmayı dene type your_cmd_here.
Denilson Sá Maia

23

whereis belirtilen bir komut için standart * nix konumlarını arar.

whichKullanıcıya özel PATH’inizi arar (arama yapılan konumların bazılarını içerebilir ve diğerlerini içermeyebilir - PATH’nize eklemişseniz arama whereisyapmayan bazı yerleri de içerebilir )


* Nix nedir?
mk12

2
Unix, Linux vb. (Vb. Mac OS X vb.)

8
Ohhh, haha, her zaman yığın taşmasının, her ne zaman bir sebep
görsem, unix'de U'yı sansürlediğini düşünürdüm

Hayır! Benzer işletim sistemleri ailesine atıfta bulunmak için sadece genel olarak kullanılan bir yaratıcı joker karakter konvansiyonu. ;)

6

Adam sayfalarını alıntı:

nerede :

burada, belirtilen dosyalar için kaynak / ikili ve kılavuz bölümlerini bulur.

Örneğin :

$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

yani, "php" çalıştırılabilir ve diğer bazı şeyler (man sayfaları gibi).


ve hangisi :

Mevcut ortamda çalıştırılacak olan dosyaların yol adlarını döndüren

Örneğin :

$ which php
/usr/bin/php

yani, sadece "php" çalıştırılabilir.


1

hangi ortam değişkeni PATH tarafından belirtilen dizinlerde yürütülebilir arayın. Ve tespit edilirse, bu yürütülebilir dosyanın tam adı yazdırılacaktır.

$ hangi ls
/ bin / ls
$ olan ifconfig
$ # Çıktı yok, çünkü ifconfig yalnızca kök dizininde PATH var.

nerede sistem tarafından otomatik olarak oluşturulan bir veritabanı kullanarak çalıştırılabilir dosyaları, kaynak dosyaları ve manuel sayfaları arar.

$ daha
az: / bin / az / usr / bin / az / usr / bin / X11 / az / usr / share/man/man1/less.1.gz

Ama görünüyor ki whereis ve yerini aynı veritabanını kullanmayın. Bir yazılım kurduğumda ve daha sonra nerede bu ve bu yazılımı aramak için hemen yerini bulmak için kullanılır . Sonuç olmasıdır whereis iken bu yazılım ile ilgili bazı dosyaları bulabildiğim yerini yapamadı. Gerçekten farklı veritabanı kullanıyorlar mı? Veri tabanı nasıl çalışır? - Peki, bilgin olmayı reddetmeye ne dersin? :)


updatedb komutunu çalıştırdın mı? bulmak hatırladığım kadarıyla dayanıyor
Oliver M Grech
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.