Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

which(1) [redhat man page]

WHICH(1)						      General Commands Manual							  WHICH(1)

NAME
which - shows the full path of (shell) commands. SYNOPSIS
which [options] [--] programname [...] DESCRIPTION
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 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 PATH using the same algorithm as bash(1). This man page is generated from the file which.texinfo. OPTIONS
--all, -a Print all matching executables in PATH, not just the first. --read-alias, -i Read aliases from stdin, reporting matching ones on stdout. This is useful in combination with using an alias for which itself. For example alias which='alias | which -i'. --skip-alias 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. --read-functions 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: which() { declare -f | which --read-functions $@ } export -f which --skip-functions Ignore option `--read-functions', if any. This is useful to explicity search for normal binaries, while using the `--read-functions' option in an alias or function for which. --skip-dot Skip directories in PATH that start with a dot. --skip-tilde Skip directories in PATH that start with a tilde and executables which reside in the HOME directory. --show-dot If a directory in PATH starts with a dot and a matching executable was found for that path, then print "./programname" rather than the full path. --show-tilde Output a tilde when a directory matches the HOME directory. This option is ignored when which is invoked as root. --tty-only Stop processing options on the right if not on tty. --version,-v,-V Print version information on standard output then exit successfully. --help Print usage information on standard output then exit successfully. RETURN VALUE
Which returns the number of failed arguments, or -1 when no `programname' was given. EXAMPLE
The recommended way to use this utility is by adding an alias (C shell) or shell function (Bourne shell) for which like 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 BUGS
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. AUTHOR
Carlo Wood <carlo@gnu.org> SEE ALSO
bash(1) WHICH(1)

Check Out this Related Man Page

alias(1)                                                           User Commands                                                          alias(1)

NAME
alias, unalias - create or remove a pseudonym or shorthand for a command or series of commands SYNOPSIS
/usr/bin/alias [ alias-name [ = string...]] /usr/bin/unalias alias-name... /usr/bin/unalias -a csh alias [ name [def]] unalias pattern ksh alias [-tx] [ name [ = value]...] unalias name... unalias [-a] DESCRIPTION
The alias and unalias utilities create or remove a pseudonym or shorthand term for a command or series of commands, with different func- tionality in the C-shell and Korn shell environments. /usr/bin/alias The alias utility creates or redefines alias definitions or writes the values of existing alias definitions to standard output. An alias definition provides a string value that replaces a command name when it is encountered. An alias definition affects the current shell execution environment and the execution environments of the subshells of the current shell. When used as specified by this document, the alias definition will not affect the parent process of the current shell nor any utility envi- ronment invoked by the shell. /usr/bin/unalias The unalias utility removes the definition for each alias name specified. The aliases are removed from the current shell execution environ- ment. The -a option removes all alias definitions from the current execution environment. csh alias assigns def to the alias name. The assigned def is a list of words that may contain escaped history-substitution metasyntax. name is not allowed to be alias or unalias. If def is omitted, the alias name is displayed along with its current definition. If both name and def are omitted, all aliases are displayed. Because of implementation restrictions, an alias definition must have been entered on a previous command line before it can be used. unalias discards aliases that match (filename substitution) pattern. All aliases may be removed by `unalias *'. ksh alias with no arguments prints the list of aliases in the form name=value on standard output. An alias is defined for each name whose value is given. A trailing space in value causes the next word to be checked for alias substitution. The -t flag is used to set and list tracked aliases. The value of a tracked alias is the full pathname corresponding to the given name. The value becomes undefined when the value of PATH is reset but the aliases remained tracked. Without the -t flag, for each name in the argument list for which no value is given, the name and value of the alias is printed. The -x flag is used to set or print exported aliases. An exported alias is defined for scripts invoked by name. The exit status is non-zero if a name is given, but no value, and no alias has been defined for the name. The aliases given by the list of names may be removed from the alias list with unalias. OPTIONS
The following option is supported by unalias: -a Removes all alias definitions from the current shell execution environment. ksh The following option is supported by alias: -t Sets and lists tracked aliases. OPERANDS
The following operands are supported: alias alias-name Write the alias definition to standard output. unalias alias-name The name of an alias to be removed. alias-name=string Assign the value of string to the alias alias-name. If no operands are given, all alias definitions will be written to standard output. OUTPUT
The format for displaying aliases (when no operands or only name operands are specified) is: "%s=%s " name, value The value string will be written with appropriate quoting so that it is suitable for reinput to the shell. EXAMPLES
Example 1: Modifying a command's output This example specifies that the output of the ls utility is columnated and more annotated: example% alias ls="ls -CF" Example 2: Repeating previous entries in the command history file This example creates a simple "redo" command to repeat previous entries in the command history file: example% alias r='fc -s' Example 3: Specifying a command's output options This example provides that the du utility summarize disk output in units of 1024 bytes: example% alias du=du -k Example 4: Dealing with an argument that is itself an alias name This example sets up the nohup utility so that it can deal with an argument that is itself an alias name: example% alias nohup="nohup " ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of alias and unalias: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH. EXIT STATUS
The following exit values are returned: 0 Successful completion. alias >0 One of the alias-name operands specified did not have an alias definition, or an error occurred. unalias >0 One of the alias-name operands specified did not represent a valid alias definition, or an error occurred. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Availability |SUNWcsu | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ SEE ALSO
csh(1), ksh(1), shell_builtins(1), attributes(5), environ(5), standards(5) SunOS 5.10 17 Jul 2002 alias(1)
Man Page