whichznajduje binarny plik wykonywalny programu (jeśli jest w twojej ŚCIEŻCE). man whichwyjaśnia jaśniej:
który zwraca ścieżki do plików (lub łączy), które byłyby wykonywane w bieżącym środowisku, gdyby jego argumenty były podane jako polecenia w ściśle zgodnej z POSIX powłoce. Robi to, przeszukując PATH w poszukiwaniu plików wykonywalnych pasujących do nazw argumentów. Nie podąża za symbolicznymi linkami.
whereisznajduje pliki binarne, źródłowe i strony man dla programu. Na przykład
$ whereis gimp
/usr/bin/gimp /usr/lib/gimp /etc/gimp /usr/share/gimp /usr/share/man/man1/gimp.1.gz
Możesz uzyskać dodatkowe szczegóły, przekazując dane wyjściowe tych poleceń jako argumenty do ls -llubfile
$ ls -l $(which gimp)
lrwxrwxrwx 1 root root 8 Jun 30 19:59 /usr/bin/gimp -> gimp-2.8
$ file $(which gimp)
/usr/bin/gimp: symbolic link to gimp-2.8
locatefaktycznie znajduje wszystkie pliki, które mają wzorzec określony w dowolnym miejscu na ścieżce. Możesz nakazać mu znajdowanie tylko plików i katalogów, których nazwy (zamiast pełnych ścieżek) zawierają wzorzec z -bopcją, która jest zwykle tym, czego chcesz, i daje mniej nieporęczną listę.
locatejest szybki, ponieważ korzysta z binarnej bazy danych, która jest okresowo aktualizowana (raz dziennie przez cron). Możesz go zaktualizować samodzielnie, aby mieć pewność, że ostatnio dodane pliki zostaną odnalezione przez uruchomieniesudo updatedb
Jeszcze jedno locate- nie ma znaczenia, czy pliki nadal istnieją, czy nie, więc aby uniknąć znajdowania ostatnio usuniętych plików, użyj -e. Często też przesyłam potokiem, lessponieważ lista może być długa. Zazwyczaj robię:
sudo updatedb && locate -b -e gimp | less
Jak działa kreska jedności wyjaśnił, jest tutaj - korzysta Zeitgeist do systemu plików indeksowych i uczyć się od sposobu użytkowania i umożliwia innych aplikacji do korzystania z tych danych, więc to robi dużo więcej pracy niż locate.
type? : P