Linux / Unix: which Command Examples To Find Out A Program File

by on January 18, 2013 · 0 comments· LAST UPDATED February 18, 2014

in , , , , ,

which command

I am a new Linux and Unix-like system user. How do I find out gcc compiler path on Linux? How can I locate a program file in path on Linux or Unix-like systems?

The which command shows the full path for each of its given arguments. This command searchers for an executable or script in the user's PATH.

which command details
DescriptionLocate a program file
Category
Difficulty
Root privilegesNo
Estimated completion time5m
Contents
I often use which command to find the executable file associated with a given command name.

Purpose

Display the full path of shell commands.

Syntax

The basic syntax is as follows:

which command

OR

which [option] command

OR

which prgoram

which command examples

To find the executable file associated with a command name of date:
$ which date

To find the executable file associated with a command name of httpd, top, and ls, type:
$ which httpd top ls

How can I list all instances of executables found?

Pass the -a option to the which command as follows:
$ which -a command
$ which -a ls

Sample outputs:
which command demo

which command options

From the which(1) command man page:

OptionMeaning
--skip-dotSkip directories in PATH that start with a dot.
--skip-tildeSkip directories in PATH that start with a tilde.
--show-dotDon't expand a dot to current directory in output.
--show-tildeOutput a tilde for HOME directory for non-root.
--tty-onlyStop processing options on the right if not on tty.
-aPrint all matches in PATH, not just the first
-iRead list of aliases from stdin.
--skip-aliasIgnore option -i; don't read stdin.
--read-functionsRead shell functions from stdin.
--skip-functionsIgnore option --read-functions; don't read stdin.

On Linux bash defined which as function as follows:

 
which ()
{
   (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
export -f which
 

tcsh / csh user can create an alias as follows:

 
alias which 'alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 

In the Korn shell, you can use the whence command for the same purpose:
$ whence ls
$ whence date httpd ls

See also
CategoryList of Unix and Linux commands
File Managementcat
Network Utilitiesdighostip
Processes Managementbgchrootdisownfgjobskillkillallpwdxtimepidofpstree
Searchingwhereiswhich
User Informationgroupsidlastlastcommlognameuserswwhowhoamilidmembers

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 0 comments… add one now }

Leave a Comment

Tagged as: , ,

Previous Faq:

Next Faq: