.\" Copyright (c) 1980, 1990 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"     This product includes software developed by the University of
.\"     California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)whereis.1 from UCB 4.2
.TH WHEREIS 1 "October 2014" "util-linux" "User Commands"
.SH NAME
whereis \- locate the binary, source, and manual page files for a command
.SH SYNOPSIS
.B whereis
[options]
.RB [ \-BMS
.IR directory "... " \fB\-f\fR ]
.IR name ...
.SH DESCRIPTION
.B whereis
locates the binary, source and manual files for the specified command names.
The supplied names are first stripped of leading pathname components and any
(single) trailing extension of the form
.BI . ext
(for example:
.BR .c )
Prefixes of
.B s.
resulting from use of source code control are also dealt with.
.B whereis
then attempts to locate the desired program in the standard Linux places, and
in the places specified by
.B $PATH
and
.BR $MANPATH .
.sp
The search restrictions (options \fB\-b\fP, \fB\-m\fP and \fB\-s\fP)
are cumulative and apply to the subsequent \fIname\fP patterns on
the command line.  Any new search restriction resets the search mask.
For example,
.RS
.sp
.B "whereis -bm ls tr -m gcc"
.sp
.RE
searches for "ls" and "tr" binaries and man pages, and for "gcc" man pages only.
.sp
The options \fB\-B\fP, \fB\-M\fP and \fB\-S\fP reset search paths for the
subsequent \fIname\fP patterns.  For example,
.RS
.sp
.B "whereis -m ls -M /usr/share/man/man1 -f cal"
.sp
.RE
searches for "ls" man pages in all default paths, but for "cal" in
the /usr/share/man/man1 directory only.

.SH OPTIONS
.TP
.IP \fB\-b\fP
Search for binaries.
.IP \fB\-m\fP
Search for manuals.
.IP \fB\-s\fP
Search for sources.
.IP \fB\-u\fP
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
.RB ' "whereis \-m \-u *" '
asks for those files in the current directory which have no documentation file,
or more than one.
.IP "\fB\-B \fIlist\fP"
Limit the places where
.B whereis
searches for binaries, by a whitespace-separated list of directories.
.IP "\fB\-M \fIlist\fP"
Limit the places where
.B whereis
searches for manuals and documentation in Info format, by a
whitespace-separated list of directories.
.IP "\fB\-S \fIlist\fP"
Limit the places where
.B whereis
searches for sources, by a whitespace-separated list of directories.
.IP "\fB\-f\fP"
Terminates the directory list and signals the start of filenames.  It
.I must
be used when any of the
.BR \-B ,
.BR \-M ,
or
.BR \-S
options is used.
.IP "\fB\-l"
Output the list of effective lookup paths that
.B whereis
is using.  When none of
.BR \-B ,
.BR \-M ,
or
.BR \-S
is specified, the option will output the hard-coded paths
that the command was able to find on the system.
.SH EXAMPLE
To find all files in
.B /usr/\:bin
which are not documented
in
.B /usr/\:man/\:man1
or have no source in
.BR /usr/\:src :
.IP
.B cd /usr/bin
.br
.B whereis \-u \-ms \-M /usr/man/man1 \-S /usr/src \-f *
.SH "FILE SEARCH PATHS"
By default
.B whereis
tries to find files from hard-coded paths, which are defined with glob
patterns.  The command attempst to use contents of
.B $PATH
and
.B $MANPATH
environment variables as default search path.  The easiest way to know
what paths are in use is to add
.B \-l
listing option.  Effects of the
.BR \-B ,
.BR \-M ,
and
.BR \-S
are display with
.BR \-l .
.PP
.SH ENVIRONMENT
.IP WHEREIS_DEBUG=all
enables debug output.
.SH AVAILABILITY
The whereis command is part of the util-linux package and is available from
.UR ftp://\:ftp.kernel.org\:/pub\:/linux\:/utils\:/util-linux/
Linux Kernel Archive
.UE .
