Cercar fitxers a LinuxComandes LinuxLinux

La comanda whereis a Linux: on són l’executable i el manual d’una comanda



La comanda whereis localitza l’executable, la pàgina de manual i el codi font d’una comanda. No recorre tot el disc: només mira en una llista de directoris estàndard (/usr/bin, /usr/sbin, /usr/share/man…), per això és instantània. Va bé per saber de cop on és un programa i si en tens el manual instal·lat.

Sintaxi

whereis [opcions] nom...

Pots passar-li diversos noms alhora. Forma part de util-linux, de manera que és present a pràcticament totes les distribucions.

Opcions més útils

OpcióQuè fa
-bNomés busca executables (binaries)
-mNomés busca pàgines de manual
-sNomés busca codi font
-uMostra només les comandes «inusuals»: les que no tenen exactament una entrada de cada tipus demanat
-B dir... -fBusca els executables només als directoris indicats (-f marca el final de la llista)
-M dir... -fEl mateix, per a les pàgines de manual
-lMostra la llista de directoris on busca

Exemples

Executable i manual d’una comanda:

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

Només l’executable:

$ whereis -b ls
ls: /usr/bin/ls

Només la pàgina de manual:

$ whereis -m ls
ls: /usr/share/man/man1/ls.1.gz

Diverses comandes alhora:

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

Codi font. Com que les distribucions no instal·len el codi font dels programes, normalment surt buit:

$ whereis -s bash
bash:

Si una comanda no està instal·lada, la línia surt buida:

$ whereis rar
rar:

Veure en quins directoris busca:

$ whereis -l | head -3
bin: /usr/bin
bin: /usr/sbin
bin: /usr/lib/aarch64-linux-gnu

whereis no busca per funció

whereis busca noms, no què fan els programes. whereis editor no et dona una llista d’editors: a Debian i Ubuntu troba /usr/bin/editor perquè existeix un enllaç amb aquest nom que apunta a l’editor per defecte (nano, vim…). Per buscar comandes per la seva descripció, fes servir apropos:

$ apropos editor
ed (1)               - line-oriented text editor
nano (1)             - Nano's ANOther text editor, inspired by Pico
...

Compte amb…

  • No mira el teu PATH: només coneix una llista fixa de directoris. Un script teu a ~/bin o un programa a /opt/programa/bin normalment no apareixerà.
  • No et diu quin s’executarà: si hi ha dues versions d’un programa, whereis les pot mostrar totes dues, però no sap quina té prioritat. Per a això fes servir which o type.
  • Pot mostrar fitxers que no són el programa: per exemple, directoris de configuració o biblioteques amb el mateix nom (whereis python3 sol mostrar també /usr/lib/python3).

Comandes relacionades