//po4a: entry man manual
= namei(1)
:doctype: manpage
:man manual: User Commands
:man source: util-linux {release-version}
:page-layout: base
:command: namei

== NAME

namei - follow a pathname until a terminal point is found

== SYNOPSIS

*namei* [options] _pathname_...

== DESCRIPTION

*namei* interprets its arguments as pathnames to any type of Unix file (symlinks, files, directories, and so forth). *namei* then follows each pathname until an endpoint is found (a file, a directory, a device node, etc). If it finds a symbolic link, it shows the link, and starts following it, indenting the output to show the context.

This program is useful for finding "too many levels of symbolic links" problems.

For each line of output, *namei* uses the following characters to identify the file type found:

....
   f: = the pathname currently being resolved
    d = directory
    l = symbolic link (both the link and its contents are output)
    s = socket
    b = block device
    c = character device
    p = FIFO (named pipe)
    - = regular file
    ? = an error of some kind
....

*namei* prints an informative message when the maximum number of symbolic links this system can have has been exceeded.

== OPTIONS

*-l*, *--long*::
Use the long listing format (same as *-m -o -v*).

*-m*, *--modes*::
Show the mode bits of each file type in the style of *ls*(1), for example 'rwxr-xr-x'.

*-n*, *--nosymlinks*::
Don't follow symlinks.

*-o*, *--owners*::
Show owner and group name of each file.

*-v*, *--vertical*::
Vertically align the modes and owners.

*-x*, *--mountpoints*::
Show mountpoint directories with a 'D' rather than a 'd'.

*-V*, *--version*::
Display version information and exit.

*-h*, *--help*::
Display help text and exit.

== BUGS

To be discovered.

== AUTHORS

The original *namei* program was written by mailto:rogers@amadeus.wr.tek.com[Roger Southwick].

The program was rewritten by Karel Zak mailto:kzak@redhat.com[Karel Zak].

== SEE ALSO

*ls*(1),
*stat*(1),
*symlink*(7)

include::man-common/bugreports.adoc[]

include::man-common/footer.adoc[]

ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
