tail head cat sleep
QR code linking to this page

Manual Pages  — WHICH

NAME

which – locate a program file in the user's path

CONTENTS

SYNOPSIS


which [-as] program ...

DESCRIPTION

The which utility takes a list of command names and searches the path for each executable file that would be run had these commands actually been invoked.

The following options are available:
-a
  List all instances of executables found (instead of just the first one of each).
-s
  No output, just return 0 if all of the executables are found, or 1 if some were not found.

Some shells may provide a builtin which command which is similar or identical to this utility. Consult the builtin(1) manual page.

EXAMPLES

Locate the ls(1) and cp(1) commands:
$ /usr/bin/which ls cp
/bin/ls
/bin/cp

Same as above with a specific PATH and showing all occurrences:

$ PATH=/bin:/rescue /usr/bin/which -a ls cp
/bin/ls
/rescue/ls
/bin/cp
/rescue/cp

which will show duplicates if the same executable is found more than once:

$ PATH=/bin:/bin /usr/bin/which -a ls
/bin/ls
/bin/ls

Do not show output. Just exit with an appropriate return code:

$ /usr/bin/which -s ls cp
$ echo $?
0

$ /usr/bin/which -s fakecommand $ echo $? 1

SEE ALSO

builtin(1), csh(1), find(1), locate(1), whereis(1)

HISTORY

The which command first appeared in FreeBSD 2.1 .

AUTHORS

The which utility was originally written in Perl and was contributed by Wolfram Schneider <Mt wosch@FreeBSD.org>. The current version of which was rewritten in C by Daniel Papasian <Mt dpapasia@andrew.cmu.edu>.

WHICH (1) September 24, 2020

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Like a classics radio station whose play list spans decades, Unix simultaneously exhibits its mixed and dated heritage. There's Clash-era graphics interfaces; Beatles-era two-letter command names; and systems programs (for example, ps) whose terse and obscure output was designed for slow teletypes; Bing Crosby-era command editing (# and @ are still the default line editing commands), and Scott Joplin-era core dumps.
— The Unix Haters' handbook