# whereis

## NAME



           whereis - locate the binary, source, and manual page files for a
           command
    


## SYNOPSIS



           **whereis**[options] [**-BMS** _directory_... **-f**] _name_...
    


## DESCRIPTION



           **whereis** locates the binary, source and manual files for the
           specified command names. The supplied names are **first stripped of**
           **leading pathname components**. Prefixes of **s.** resulting from use of
           source code control are also dealt with. **whereis** then attempts to
           locate the desired program in the standard Linux places, and in
           the places specified by **$PATH** and **$MANPATH**.
    
           The search restrictions (options **-b** , **-m** and **-s**) are cumulative and
           apply to the subsequent _name_ patterns on the command line. Any new
           search restriction resets the search mask. For example,
    
              **whereis -bm ls tr -m gcc**
    
           searches for "ls" and "tr" binaries and man pages, and for "gcc"
           man pages only.
    
           The options **-B** , **-M** and **-S** reset search paths for the subsequent
           _name_ patterns. For example,
    
              **whereis -m ls -M /usr/share/man/man1 -f cal**
    
           searches for "**ls** " man pages in all default paths, but for "cal" in
           the _/usr/share/man/man1_ directory only.
    


## OPTIONS



           **-b**
               Search for binaries.
    
           **-m**
               Search for manuals.
    
           **-s**
               Search for sources.
    
           **-u**
               Only show the command names that have unusual entries. A
               command is said to be unusual if it does not have just one
               entry of each explicitly requested type. Thus '**whereis -m -u**
               ***** ' asks for those files in the current directory which have no
               documentation file, or more than one.
    
           **-B** _list_
               Limit the places where **whereis** searches for binaries, by a
               whitespace-separated list of directories.
    
           **-M** _list_
               Limit the places where **whereis** searches for manuals and
               documentation in Info format, by a whitespace-separated list
               of directories.
    
           **-S** _list_
               Limit the places where **whereis** searches for sources, by a
               whitespace-separated list of directories.
    
           **-f**
               Terminates the directory list and signals the start of
               filenames. It _must_ be used when any of the **-B** , **-M** , or **-S**
               options is used.
    
           **-l**
               Output the list of effective lookup paths that **whereis** is
               using. When none of **-B** , **-M** , or **-S** is specified, the option
               will output the hard-coded paths that the command was able to
               find on the system.
    
           **-g**
               Interpret the next names as a glob(7) patterns. **whereis** always
               compares only filenames (aka basename) and never complete
               path. Using directory names in the pattern has no effect.
               Don’t forget that the shell interprets the pattern when
               specified on the command line without quotes. It’s necessary
               to use quotes for the _name_ , for example:
    
                  whereis -g 'find*'
    
           **-h** , **--help**
               Display help text and exit.
    
           **-V** , **--version**
               Display version and exit.
    


## FILE SEARCH PATHS



           By default **whereis** tries to find files from hard-coded paths,
           which are defined with glob patterns. The command attempts to use
           the contents of **$PATH** and **$MANPATH** environment variables as
           default search path. The easiest way to know what paths are in use
           is to add the **-l** listing option. Effects of the **-B** , **-M** , and **-S** are
           displayed with **-l**.
    


## ENVIRONMENT



           **WHEREIS_DEBUG** =all
               enables debug output.
    


## EXAMPLES



           To find all files in _/usr/bin_ which are not documented in
           _/usr/man/man1_ or have no source in _/usr/src_ :
    
              **cd /usr/bin**
              **whereis -u -ms -M /usr/man/man1 -S /usr/src -f ***
    


## AVAILABILITY



           The **whereis** command is part of the util-linux package which can be
           downloaded from Linux Kernel Archive
           <https://www.kernel.org/pub/linux/utils/util-linux/>. This page is
           part of the _util-linux_ (a random collection of Linux utilities)
           project. Information about the project can be found at 
           ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
           bug report for this manual page, send it to
           util-linux@vger.kernel.org. This page was obtained from the
           project's upstream Git repository
           ⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
           2025-08-11. (At that time, the date of the most recent commit that
           was found in the repository was 2025-08-05.) If you discover any
           rendering problems in this HTML version of the page, or you
           believe there is a better or more up-to-date source for the page,
           or you have corrections or improvements to the information in this
           COLOPHON (which is _not_ part of the original manual page), send a
           mail to man-pages@man7.org
    
    util-linux 2.42-start-521-ec46  2025-08-09                     _WHEREIS_(1)
    


* * *