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.