
Install ======= You will need an ANSI C compiler (like gcc) to compile this package. Just type `make', followed by `make install'. History ======= The main difference with version 1.0 by Paul Vixie is that this version will not return directory names as being executables and that by default it will expand a leading "./" and "~/" to its full path on output. The -all option has been added in example of a version of which on Ultrix. They use `-a' as option. The --read-alias idea has been copied from a version of which by Maarten Litmaath called `which-v6', he was using `-i' as option which stands for `interactive'. Manual page =========== which - shows the full path of (shell) commands. [1mSYNOPSIS[0m [1mwhich [22m[options] [--] programname [...] [1mDESCRIPTION[0m [1mWhich [22mtakes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been exe- cuted 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 [1mPATH [22musing the same algorithm as [1mbash(1)[22m. This man page is generated from the file [4mwhich.texinfo[24m. [1mOPTIONS[0m [1m--all[22m, [1m-a[0m Print all matching executables in [1mPATH[22m, not just the first. [1m--read-alias[22m, [1m-i[0m Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For ex- ample [1malias which='alias | which -i'[22m. [1m--skip-alias[0m Ignore option `--read-alias', if any. This is useful to explicity search for normal binaries, while using the `--read-alias' option in an alias or function for which. [1m--read-functions[0m Read shell function definitions from stdin, reporting matching ones on stdout. This is useful in combination with using a shell func- tion for which itself. For example: [1mwhich() { declare -f | which --read-functions $@ }[0m export -f which [1m--skip-functions[0m Ignore option `--read-functions', if any. This is useful to explic- ity search for normal binaries, while using the `--read-functions' option in an alias or function for which. [1m--skip-dot[0m Skip directories in [1mPATH [22mthat start with a dot. [1m--skip-tilde[0m Skip directories in [1mPATH [22mthat start with a tilde and executables which reside in the [1mHOME [22mdirectory. [1m--show-dot[0m If a directory in [1mPATH [22mstarts with a dot and a matching executable was found for that path, then print "./programname" rather than the full path. [1m--show-tilde[0m Output a tilde when a directory matches the [1mHOME [22mdirectory. This option is ignored when which is invoked as root. [1m--tty-only[0m Stop processing options on the right if not on tty. [1m--version,-v,-V[0m Print version information on standard output then exit success- fully. [1m--help[0m Print usage information on standard output then exit successfully. [1mRETURN VALUE[0m [1mWhich [22mreturns the number of failed arguments, or -1 when no `program- name' was given. [1mEXAMPLE[0m The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for [1mwhich [22mlike the following: [ba]sh: which () { (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@ } export -f which [t]csh: 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 ~/bin/q2 > echo $(which q2) /home/carlo/bin/q2 [1mBUGS[0m The [1mHOME [22mdirectory is determined by looking for the [1mHOME [22menvironment variable, which aborts when this variable doesn't exist. [1mWhich [22mwill consider two equivalent directories to be different when one of them contains a path with a symbolic link. [1mAUTHOR[0m Carlo Wood <carlo@gnu.org> [1mSEE ALSO[0m [1mbash(1)[0m [4mWHICH[24m(1)