62

I hope my question isn't too trivial, but I've never actually needed to know this before.

In which directory can I find the files of the man pages, i.e. the read-only text file opened when you type man foo? I assume different distros may keep them in slightly different places, so if it makes any difference I run Ubuntu 10.04.

Yitzchak
  • 4,424
  • 6
  • 26
  • 44

3 Answers3

82

Use manpath to see the directories used by your system, and man --where --all foo to find a specific manual page of foo.

The standard location is /usr/share/man according to Filesystem Hierarchy Standard, and /usr/man is usually a symlink to that directory.

Other locations can be defined in /etc/manpath.config or /etc/man_db.conf (exact location varies). For example, /usr/local/share/man is almost always included.

In addition, man tries to find manual pages for every directory specified in $PATH – for example, if you added /opt/plan9/bin to $PATH, man will automatically search /opt/plan9/man and /opt/plan9/bin/man.

If the $MANPATH environment variable is set, however, it will override all other sources.

u1686_grawity
  • 426,297
  • 64
  • 894
  • 966
  • 3
    I know this question is for Ubuntu, but if anybody from macOS is here, the equivalent is `man -w -a foo`. It appears Apple's `man` does not have the longer `--where` and `--all` options – Max Coplan Nov 23 '19 at 20:29
7

In the files that end with .gz when using whereis:

whereis man

output:

man: /usr/bin/man /usr/bin/X11/man /usr/local/man /usr/share/man /usr/share/man/man1/man.1.gz /usr/share/man/man7/man.7.gz

Example with grep:

whereis grep

output:

grep: /bin/grep /usr/share/man/man1/grep.1.gz

minor update on how to read these gz files:

info /usr/share/man/man1/grep.info.gz
zcat /usr/share/man/man1/grep.1.gz | less

or if it is in the name.number.gz format:

zcat /usr/share/man/man1/grep.1.gz | less
# or more readable
man /usr/share/man/man1/grep.1.gz
jmunsch
  • 279
  • 4
  • 8
  • 5
    `whereis` tells you the location of a program, so doing `whereis man` will tell you where the `man` executable is stored, but not the man pages themselves. – jff Jun 29 '16 at 01:31
  • 5
    @jff is incorrect here. From the manual page for whereis: 'whereis - locate the binary, source, and manual page files for a command'. Using `whereis -m grep` will restrict output just to the location of the manual page files. – Nick Kennedy Jun 18 '18 at 15:51
4

They should be under /usr/share/man.

John T
  • 163,373
  • 27
  • 341
  • 348