≡ Menu

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

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
Root privilegesNo
Estimated completion time5m
I often use which command to find the executable file associated with a given command name.


Display the full path of shell commands.


The basic syntax is as follows:

which command


which [option] command


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:

--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
Package Managerapt
Processes Managementbgchrootdisownfgjobskillkillallpwdxtimepidofpstree
User Informationgroupsidlastlastcommlognameuserswwhowhoamilidmembers

Share this tutorial on:
{ 0 comments… add one }
Security: Are you a robot or human?

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">

   Tagged with: , ,