which
znajduje binarny plik wykonywalny programu (jeśli jest w twojej ŚCIEŻCE). man which
wyjaś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.
whereis
znajduje 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 -l
lubfile
$ 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
locate
faktycznie 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 -b
opcją, która jest zwykle tym, czego chcesz, i daje mniej nieporęczną listę.
locate
jest 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, less
ponieważ 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