749 lines
19 KiB
HTML
749 lines
19 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of SYMLINK</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>SYMLINK</H1>
|
|
Section: Linux Programmer's Manual (7)<BR>Updated: 2016-10-08<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
symlink - symbolic link handling
|
|
<A NAME="lbAC"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
Symbolic links are files that act as pointers to other files.
|
|
To understand their behavior, you must first understand how hard links
|
|
work.
|
|
<P>
|
|
|
|
A hard link to a file is indistinguishable from the original file because
|
|
it is a reference to the object underlying the original filename.
|
|
(To be precise: each of the hard links to a file is a reference to
|
|
the same
|
|
<I>inode number</I>,
|
|
|
|
where an inode number is an index into the inode table,
|
|
which contains metadata about all files on a filesystem.
|
|
See
|
|
<B><A HREF="/cgi-bin/man/man2html?2+stat">stat</A></B>(2).)
|
|
|
|
Changes to a file are independent of the name used to reference the file.
|
|
Hard links may not refer to directories
|
|
(to prevent the possibility of loops within the filesystem tree,
|
|
which would confuse many programs)
|
|
and may not refer to files on different filesystems
|
|
(because inode numbers are not unique across filesystems).
|
|
<P>
|
|
|
|
A symbolic link is a special type of file whose contents are a string
|
|
that is the pathname of another file, the file to which the link refers.
|
|
(The contents of a symbolic link can be read using
|
|
<B><A HREF="/cgi-bin/man/man2html?2+readlink">readlink</A></B>(2).)
|
|
|
|
In other words, a symbolic link is a pointer to another name,
|
|
and not to an underlying object.
|
|
For this reason, symbolic links may refer to directories and may cross
|
|
filesystem boundaries.
|
|
<P>
|
|
|
|
There is no requirement that the pathname referred to by a symbolic link
|
|
should exist.
|
|
A symbolic link that refers to a pathname that does not exist is said
|
|
to be a
|
|
<I>dangling link</I>.
|
|
|
|
<P>
|
|
|
|
Because a symbolic link and its referenced object coexist in the filesystem
|
|
name space, confusion can arise in distinguishing between the link itself
|
|
and the referenced object.
|
|
On historical systems,
|
|
commands and system calls adopted their own link-following
|
|
conventions in a somewhat ad-hoc fashion.
|
|
Rules for a more uniform approach,
|
|
as they are implemented on Linux and other systems,
|
|
are outlined here.
|
|
It is important that site-local applications also conform to these rules,
|
|
so that the user interface can be as consistent as possible.
|
|
<A NAME="lbAD"> </A>
|
|
<H3>Symbolic link ownership, permissions, and timestamps</H3>
|
|
|
|
The owner and group of an existing symbolic link can be changed
|
|
using
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lchown">lchown</A></B>(2).
|
|
|
|
The only time that the ownership of a symbolic link matters is
|
|
when the link is being removed or renamed in a directory that
|
|
has the sticky bit set (see
|
|
<B><A HREF="/cgi-bin/man/man2html?2+stat">stat</A></B>(2)).
|
|
|
|
<P>
|
|
|
|
The last access and last modification timestamps
|
|
of a symbolic link can be changed using
|
|
<B><A HREF="/cgi-bin/man/man2html?2+utimensat">utimensat</A></B>(2)
|
|
|
|
or
|
|
<B><A HREF="/cgi-bin/man/man2html?3+lutimes">lutimes</A></B>(3).
|
|
|
|
<P>
|
|
|
|
On Linux, the permissions of a symbolic link are not used
|
|
in any operations; the permissions are always
|
|
0777 (read, write, and execute for all user categories),
|
|
|
|
and can't be changed.
|
|
(Note that there are some "magic" symbolic links in the
|
|
<I>/proc</I>
|
|
|
|
directory tree---for example, the
|
|
<I>/proc/[pid]/fd/*</I>
|
|
|
|
files---that have different permissions.)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<A NAME="lbAE"> </A>
|
|
<H3>Obtaining a file descriptor that refers to a symbolic link</H3>
|
|
|
|
Using the combination of the
|
|
<B>O_PATH</B>
|
|
|
|
and
|
|
<B>O_NOFOLLOW</B>
|
|
|
|
flags to
|
|
<B><A HREF="/cgi-bin/man/man2html?2+open">open</A></B>(2)
|
|
|
|
yields a file descriptor that can be passed as the
|
|
<I>dirfd</I>
|
|
|
|
argument in system calls such as
|
|
<B><A HREF="/cgi-bin/man/man2html?2+fstatat">fstatat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+fchownat">fchownat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+fchmodat">fchmodat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+linkat">linkat</A></B>(2),
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?2+readlinkat">readlinkat</A></B>(2),
|
|
|
|
in order to operate on the symbolic link itself
|
|
(rather than the file to which it refers).
|
|
<P>
|
|
|
|
By default
|
|
(i.e., if the
|
|
<B>AT_SYMLINK_FOLLOW</B>
|
|
|
|
flag is not specified), if
|
|
<B><A HREF="/cgi-bin/man/man2html?2+name_to_handle_at">name_to_handle_at</A></B>(2)
|
|
|
|
is applied to a symbolic link, it yields a handle for the symbolic link
|
|
(rather than the file to which it refers).
|
|
One can then obtain a file descriptor for the symbolic link
|
|
(rather than the file to which it refers)
|
|
by specifying the
|
|
<B>O_PATH</B>
|
|
|
|
flag in a subsequent call to
|
|
<B><A HREF="/cgi-bin/man/man2html?2+open_by_handle_at">open_by_handle_at</A></B>(2).
|
|
|
|
Again, that file descriptor can be used in the
|
|
aforementioned system calls to operate on the symbolic link itself.
|
|
<A NAME="lbAF"> </A>
|
|
<H3>Handling of symbolic links by system calls and commands</H3>
|
|
|
|
Symbolic links are handled either by operating on the link itself,
|
|
or by operating on the object referred to by the link.
|
|
In the latter case,
|
|
an application or system call is said to
|
|
<I>follow</I>
|
|
|
|
the link.
|
|
Symbolic links may refer to other symbolic links,
|
|
in which case the links are dereferenced until an object that is
|
|
not a symbolic link is found,
|
|
a symbolic link that refers to a file which does not exist is found,
|
|
or a loop is detected.
|
|
(Loop detection is done by placing an upper limit on the number of
|
|
links that may be followed, and an error results if this limit is
|
|
exceeded.)
|
|
<P>
|
|
|
|
There are three separate areas that need to be discussed.
|
|
They are as follows:
|
|
<DL COMPACT>
|
|
<DT id="1">1.<DD>
|
|
Symbolic links used as filename arguments for system calls.
|
|
<DT id="2">2.<DD>
|
|
Symbolic links specified as command-line arguments to utilities that
|
|
are not traversing a file tree.
|
|
<DT id="3">3.<DD>
|
|
Symbolic links encountered by utilities that are traversing a file tree
|
|
(either specified on the command line or encountered as part of the
|
|
file hierarchy walk).
|
|
</DL>
|
|
<A NAME="lbAG"> </A>
|
|
<H3>System calls</H3>
|
|
|
|
The first area is symbolic links used as filename arguments for
|
|
system calls.
|
|
<P>
|
|
|
|
Except as noted below, all system calls follow symbolic links.
|
|
For example, if there were a symbolic link
|
|
<I>slink</I>
|
|
|
|
which pointed to a file named
|
|
<I>afile</I>,
|
|
|
|
the system call
|
|
<I>open(slink ...)</I>
|
|
|
|
would return a file descriptor referring to the file
|
|
<I>afile</I>.
|
|
|
|
<P>
|
|
|
|
Various system calls do not follow links, and operate
|
|
on the symbolic link itself.
|
|
They are:
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lchown">lchown</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lgetxattr">lgetxattr</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+llistxattr">llistxattr</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lremovexattr">lremovexattr</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lsetxattr">lsetxattr</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lstat">lstat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+readlink">readlink</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+rename">rename</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+rmdir">rmdir</A></B>(2),
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?2+unlink">unlink</A></B>(2).
|
|
|
|
<P>
|
|
|
|
Certain other system calls optionally follow symbolic links.
|
|
They are:
|
|
<B><A HREF="/cgi-bin/man/man2html?2+faccessat">faccessat</A></B>(2),
|
|
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+fchownat">fchownat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+fstatat">fstatat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+linkat">linkat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+name_to_handle_at">name_to_handle_at</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+open">open</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+openat">openat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+open_by_handle_at">open_by_handle_at</A></B>(2),
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?2+utimensat">utimensat</A></B>(2);
|
|
|
|
see their manual pages for details.
|
|
Because
|
|
<B><A HREF="/cgi-bin/man/man2html?3+remove">remove</A></B>(3)
|
|
|
|
is an alias for
|
|
<B><A HREF="/cgi-bin/man/man2html?2+unlink">unlink</A></B>(2),
|
|
|
|
that library function also does not follow symbolic links.
|
|
When
|
|
<B><A HREF="/cgi-bin/man/man2html?2+rmdir">rmdir</A></B>(2)
|
|
|
|
is applied to a symbolic link, it fails with the error
|
|
<B>ENOTDIR</B>.
|
|
|
|
<P>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+link">link</A></B>(2)
|
|
|
|
warrants special discussion.
|
|
POSIX.1-2001 specifies that
|
|
<B><A HREF="/cgi-bin/man/man2html?2+link">link</A></B>(2)
|
|
|
|
should dereference
|
|
<I>oldpath</I>
|
|
|
|
if it is a symbolic link.
|
|
However, Linux does not do this.
|
|
(By default, Solaris is the same,
|
|
but the POSIX.1-2001 specified behavior can be obtained with
|
|
suitable compiler options.)
|
|
POSIX.1-2008 changed the specification to allow
|
|
either behavior in an implementation.
|
|
<A NAME="lbAH"> </A>
|
|
<H3>Commands not traversing a file tree</H3>
|
|
|
|
The second area is symbolic links, specified as command-line
|
|
filename arguments, to commands which are not traversing a file tree.
|
|
<P>
|
|
|
|
Except as noted below, commands follow symbolic links named as
|
|
command-line arguments.
|
|
For example, if there were a symbolic link
|
|
<I>slink</I>
|
|
|
|
which pointed to a file named
|
|
<I>afile</I>,
|
|
|
|
the command
|
|
<I>cat slink</I>
|
|
|
|
would display the contents of the file
|
|
<I>afile</I>.
|
|
|
|
<P>
|
|
|
|
It is important to realize that this rule includes commands which may
|
|
optionally traverse file trees; for example, the command
|
|
<I>chown file</I>
|
|
|
|
is included in this rule, while the command
|
|
<I>chown -R file</I>,
|
|
|
|
which performs a tree traversal, is not.
|
|
(The latter is described in the third area, below.)
|
|
<P>
|
|
|
|
If it is explicitly intended that the command operate on the symbolic
|
|
link instead of following the symbolic link---for example, it is desired that
|
|
<I>chown slink</I>
|
|
|
|
change the ownership of the file that
|
|
<I>slink</I>
|
|
|
|
is, whether it is a symbolic link or not---the
|
|
<I>-h</I>
|
|
|
|
option should be used.
|
|
In the above example,
|
|
<I>chown root slink</I>
|
|
|
|
would change the ownership of the file referred to by
|
|
<I>slink</I>,
|
|
|
|
while
|
|
<I>chown -h root slink</I>
|
|
|
|
would change the ownership of
|
|
<I>slink</I>
|
|
|
|
itself.
|
|
<P>
|
|
|
|
There are some exceptions to this rule:
|
|
<DL COMPACT>
|
|
<DT id="4">*<DD>
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+mv">mv</A></B>(1)
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1)
|
|
|
|
commands do not follow symbolic links named as arguments,
|
|
but respectively attempt to rename and delete them.
|
|
(Note, if the symbolic link references a file via a relative path,
|
|
moving it to another directory may very well cause it to stop working,
|
|
since the path may no longer be correct.)
|
|
<DT id="5">*<DD>
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
command is also an exception to this rule.
|
|
For compatibility with historic systems (when
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
is not doing a tree walk---that is,
|
|
<I>-R</I>
|
|
|
|
option is not specified),
|
|
the
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
command follows symbolic links named as arguments if the
|
|
<I>-H</I>
|
|
|
|
or
|
|
<I>-L</I>
|
|
|
|
option is specified,
|
|
or if the
|
|
<I>-F</I>,
|
|
|
|
<I>-d</I>,
|
|
|
|
or
|
|
<I>-l</I>
|
|
|
|
options are not specified.
|
|
(The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
command is the only command where the
|
|
<I>-H</I>
|
|
|
|
and
|
|
<I>-L</I>
|
|
|
|
options affect its behavior even though it is not doing a walk of
|
|
a file tree.)
|
|
<DT id="6">*<DD>
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+file">file</A></B>(1)
|
|
|
|
command is also an exception to this rule.
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+file">file</A></B>(1)
|
|
|
|
command does not follow symbolic links named as argument by default.
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+file">file</A></B>(1)
|
|
|
|
command does follow symbolic links named as argument if the
|
|
<I>-L</I>
|
|
|
|
option is specified.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</DL>
|
|
<A NAME="lbAI"> </A>
|
|
<H3>Commands traversing a file tree</H3>
|
|
|
|
The following commands either optionally or always traverse file trees:
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chgrp">chgrp</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chmod">chmod</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chown">chown</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+cp">cp</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+du">du</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+find">find</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+pax">pax</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1),
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?1+tar">tar</A></B>(1).
|
|
|
|
<P>
|
|
|
|
It is important to realize that the following rules apply equally to
|
|
symbolic links encountered during the file tree traversal and symbolic
|
|
links listed as command-line arguments.
|
|
<P>
|
|
|
|
The <I>first rule</I> applies to symbolic links that reference files other
|
|
than directories.
|
|
Operations that apply to symbolic links are performed on the links
|
|
themselves, but otherwise the links are ignored.
|
|
<P>
|
|
|
|
The command
|
|
<I>rm -r slink directory</I>
|
|
|
|
will remove
|
|
<I>slink</I>,
|
|
|
|
as well as any symbolic links encountered in the tree traversal of
|
|
<I>directory</I>,
|
|
|
|
because symbolic links may be removed.
|
|
In no case will
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1)
|
|
|
|
affect the file referred to by
|
|
<I>slink</I>.
|
|
|
|
<P>
|
|
|
|
The <I>second rule</I> applies to symbolic links that refer to directories.
|
|
Symbolic links that refer to directories are never followed by default.
|
|
This is often referred to as a "physical" walk, as opposed to a "logical"
|
|
walk (where symbolic links that refer to directories are followed).
|
|
<P>
|
|
|
|
Certain conventions are (should be) followed as consistently as
|
|
possible by commands that perform file tree walks:
|
|
<DL COMPACT>
|
|
<DT id="7">*<DD>
|
|
A command can be made to follow
|
|
any symbolic links named on the command line,
|
|
regardless of the type of file they reference, by specifying the
|
|
<I>-H</I>
|
|
|
|
(for "half-logical") flag.
|
|
This flag is intended to make the command-line name space look
|
|
like the logical name space.
|
|
(Note, for commands that do not always do file tree traversals, the
|
|
<I>-H</I>
|
|
|
|
flag will be ignored if the
|
|
<I>-R</I>
|
|
|
|
flag is not also specified.)
|
|
<DT id="8"><DD>
|
|
For example, the command
|
|
<I>chown -HR user slink</I>
|
|
|
|
will traverse the file hierarchy rooted in the file pointed to by
|
|
<I>slink</I>.
|
|
|
|
Note, the
|
|
<I>-H</I>
|
|
|
|
is not the same as the previously discussed
|
|
<I>-h</I>
|
|
|
|
flag.
|
|
The
|
|
<I>-H</I>
|
|
|
|
flag causes symbolic links specified on the command line to be
|
|
dereferenced for the purposes of both the action to be performed
|
|
and the tree walk, and it is as if the user had specified the
|
|
name of the file to which the symbolic link pointed.
|
|
<DT id="9">*<DD>
|
|
A command can be made to
|
|
follow any symbolic links named on the command line,
|
|
as well as any symbolic links encountered during the traversal,
|
|
regardless of the type of file they reference, by specifying the
|
|
<I>-L</I>
|
|
|
|
(for "logical") flag.
|
|
This flag is intended to make the entire name space look like
|
|
the logical name space.
|
|
(Note, for commands that do not always do file tree traversals, the
|
|
<I>-L</I>
|
|
|
|
flag will be ignored if the
|
|
<I>-R</I>
|
|
|
|
flag is not also specified.)
|
|
<DT id="10"><DD>
|
|
For example, the command
|
|
<I>chown -LR user slink</I>
|
|
|
|
will change the owner of the file referred to by
|
|
<I>slink</I>.
|
|
|
|
If
|
|
<I>slink</I>
|
|
|
|
refers to a directory,
|
|
<B>chown</B>
|
|
|
|
will traverse the file hierarchy rooted in the directory that it
|
|
references.
|
|
In addition, if any symbolic links are encountered in any file tree that
|
|
<B>chown</B>
|
|
|
|
traverses, they will be treated in the same fashion as
|
|
<I>slink</I>.
|
|
|
|
<DT id="11">*<DD>
|
|
A command can be made to
|
|
provide the default behavior by specifying the
|
|
<I>-P</I>
|
|
|
|
(for "physical") flag.
|
|
This flag is intended to make the entire name space look like the
|
|
physical name space.
|
|
</DL>
|
|
<P>
|
|
|
|
For commands that do not by default do file tree traversals, the
|
|
<I>-H</I>,
|
|
|
|
<I>-L</I>,
|
|
|
|
and
|
|
<I>-P</I>
|
|
|
|
flags are ignored if the
|
|
<I>-R</I>
|
|
|
|
flag is not also specified.
|
|
In addition, you may specify the
|
|
<I>-H</I>,
|
|
|
|
<I>-L</I>,
|
|
|
|
and
|
|
<I>-P</I>
|
|
|
|
options more than once;
|
|
the last one specified determines the command's behavior.
|
|
This is intended to permit you to alias commands to behave one way
|
|
or the other, and then override that behavior on the command line.
|
|
<P>
|
|
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
and
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1)
|
|
|
|
commands have exceptions to these rules:
|
|
<DL COMPACT>
|
|
<DT id="12">*<DD>
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1)
|
|
|
|
command operates on the symbolic link, and not the file it references,
|
|
and therefore never follows a symbolic link.
|
|
The
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1)
|
|
|
|
command does not support the
|
|
<I>-H</I>,
|
|
|
|
<I>-L</I>,
|
|
|
|
or
|
|
<I>-P</I>
|
|
|
|
options.
|
|
<DT id="13">*<DD>
|
|
To maintain compatibility with historic systems,
|
|
the
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
command acts a little differently.
|
|
If you do not specify the
|
|
<I>-F</I>,
|
|
|
|
<I>-d</I>
|
|
|
|
or
|
|
<I>-l</I>
|
|
|
|
options,
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
will follow symbolic links specified on the command line.
|
|
If the
|
|
<I>-L</I>
|
|
|
|
flag is specified,
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1)
|
|
|
|
follows all symbolic links,
|
|
regardless of their type,
|
|
whether specified on the command line or encountered in the tree walk.
|
|
</DL>
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chgrp">chgrp</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+chmod">chmod</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+find">find</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ln">ln</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+ls">ls</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+mv">mv</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+namei">namei</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?1+rm">rm</A></B>(1),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lchown">lchown</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+link">link</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+lstat">lstat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+readlink">readlink</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+rename">rename</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+symlink">symlink</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+unlink">unlink</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?2+utimensat">utimensat</A></B>(2),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?3+lutimes">lutimes</A></B>(3),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?7+path_resolution">path_resolution</A></B>(7)
|
|
|
|
<A NAME="lbAK"> </A>
|
|
<H2>COLOPHON</H2>
|
|
|
|
This page is part of release 5.05 of the Linux
|
|
<I>man-pages</I>
|
|
|
|
project.
|
|
A description of the project,
|
|
information about reporting bugs,
|
|
and the latest version of this page,
|
|
can be found at
|
|
<A HREF="https://www.kernel.org/doc/man-pages/.">https://www.kernel.org/doc/man-pages/.</A>
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="14"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="15"><A HREF="#lbAC">DESCRIPTION</A><DD>
|
|
<DL>
|
|
<DT id="16"><A HREF="#lbAD">Symbolic link ownership, permissions, and timestamps</A><DD>
|
|
<DT id="17"><A HREF="#lbAE">Obtaining a file descriptor that refers to a symbolic link</A><DD>
|
|
<DT id="18"><A HREF="#lbAF">Handling of symbolic links by system calls and commands</A><DD>
|
|
<DT id="19"><A HREF="#lbAG">System calls</A><DD>
|
|
<DT id="20"><A HREF="#lbAH">Commands not traversing a file tree</A><DD>
|
|
<DT id="21"><A HREF="#lbAI">Commands traversing a file tree</A><DD>
|
|
</DL>
|
|
<DT id="22"><A HREF="#lbAJ">SEE ALSO</A><DD>
|
|
<DT id="23"><A HREF="#lbAK">COLOPHON</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:06:10 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|