which - shows the full path of (shell) commands.
which [options] [--] programname [...]
Which takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH using the same algorithm as bash(1) .
This man page is generated from the file which.texinfo.
Print all matching executables in PATH, not just the first.
Which returns the number of failed arguments, or -1 when no ‘programname? was given.
The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like the following:
(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ }
export -f which
alias which ?alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde?
This will print the readable ~/ and ./ when starting which from your prompt, while still printing the full path when used from a script:
> which q2
> echo ‘which q2‘
The HOME directory is determined by looking for the HOME environment variable, which aborts when this variable doesn?t exist. Which will consider two equivalent directories to be different when one of them contains a path with a symbolic link.
Carlo Wood <firstname.lastname@example.org>
Table of Contents