134 lines
4.8 KiB
Text
134 lines
4.8 KiB
Text
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)
|