Ich verwende den Befehl whereis rm
$ whereis rm
/bin/rm
Dann versuche ich which rm
$ which rm
/usr/local/opt/coreutils/libexec/gnubin/rm
Die Ergebnisse sind unterschiedlich… also welche rm
wird aufgerufen, wenn ich einen Befehl wie rm readme
ausführe ?
Akzeptierte Antwort:
Diese Antwort auf Super User von Denilson Sá Maia kann hilfreich sein:
which
durchsucht Ihren benutzerspezifischen PATH (der einige der Orte enthalten kann, an denen gesucht wird, andere möglicherweise nicht – er kann auch einige Orte enthalten, die whereis
sind sucht nicht, wenn Sie zu Ihrem PATH hinzugefügt haben).
whereis
durchsucht die standardmäßigen *nix-Speicherorte nach einem bestimmten Befehl.
$ 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
Grundsätzlich whereis
sucht nach „möglicherweise nützlichen“ Dateien, während which
sucht nur nach ausführbaren Dateien.
Ich verwende selten whereis
. Andererseits which
ist sehr nützlich, besonders in Skripten. which
ist die Antwort auf folgende Frage:Woher kommt dieser Befehl?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2