---
name: "whichman"
section: "1"
platform: "linux"
package: "whichman"
version: "2.4-10"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/whichman"
---

# whichman(1)

show the location of a man page using a fault tolerant approximate matching algorithm

## NAME

whichman - show the location of a man page using a fault tolerant approximate matching algorithm

## SYNOPSIS

**whichman** \[-#ehIp\]\[-t#\] man-page-name

## DESCRIPTION

**whichman** is a "which" alike search command for man pages.  **whichman** searches the     **MANPATH** environment variable.  If this variable is not defined, then it uses */usr/share/man:/usr/man:/usr/X11R6/man:* */usr/local/share/man:/usr/local/man* by default.

Unlike "which" this program does not stop on the first match. The name should probably have been something like whereman as this is not a "which" at all.  whichman shows all man-pages that match and allows you to identify the different sections to which the pages belong.

**whichman** can handle international manpage path names for different languages. Man pages in different languages may be stored in .../man/\<country\_code\>/man\[1-9\]/...

By default,  **whichman** does fault tolerant approximate string matching. With a default tolerance level of:  (strlen(searchpattern) - number of wildcards)/6 + 1

## OPTIONS

- *-h*

  Prints a little help/usage information.

- *-I*

  Do case sensitive search (default is case in-sensitive)

- *-e*

  Use exact matching when searching  for a given man-page and the wildcards \* and ? are disabled.

- *-p*

  print the actual tolerance level in front of the man page name.

- *-# or -t#*

  Set the fault tolerance level to #.  The fault tolerance level is a integer # in the range 0-255.  It specifies the maximum number of errors permitted in finding the approximate match.  A tolerance\_level of zero allows exact matches only but does NOT disable the wildcards \* and ?.

The search key may contain the wildcards \* and ? (but see -e option):

- **'\*'**

  any arbitrary number of character

- **'?'**

  one character

The last argument to whichman is not parsed for options as the program needs at least one man-page-name argument. This means that  *whichman -x* will not complain about a wrong option but search for the man-page named -x.

## EXAMPLE

*whichman* print

This will e.g. find the man-pages:\
 /usr/share/man/man1/printf.1.gz\
 /usr/share/man/man3/printf.3.gz\
 /usr/share/man/man3/rint.3.gz

## BUGS

The wildcards  **'?'** and  **'\*'** can not be escaped. These characters function always as wildcards. This is however not a big problem since there is hardly any man-page that has these characters in its name.

## AUTHOR

Guido Socher (guido@linuxfocus.org)

## SEE ALSO

[**ftff**(1)](/ftff/1.md), [**man**(1)](/man/1.md)
