344 lines
12 KiB
HTML
344 lines
12 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
|
|
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
|
|
<title>ln</title>
|
|
</head>
|
|
<body bgcolor="white">
|
|
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
|
|
</script>
|
|
|
|
<basefont size="3"> <a name="ln"></a> <a name="tag_04_75"></a><!-- ln -->
|
|
<!--header start-->
|
|
<center><font size="2">The Open Group Base Specifications Issue 6<br>
|
|
IEEE Std 1003.1-2001<br>
|
|
Copyright © 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
|
|
|
|
<!--header end-->
|
|
<hr size="2" noshade>
|
|
<h4><a name="tag_04_75_01"></a>NAME</h4>
|
|
|
|
<blockquote>ln - link files</blockquote>
|
|
|
|
<h4><a name="tag_04_75_02"></a>SYNOPSIS</h4>
|
|
|
|
<blockquote class="synopsis">
|
|
<p><code><tt>ln</tt> <b>[</b><tt>-fs</tt><b>]</b> <i>source_file target_file</i><tt><br>
|
|
<br>
|
|
ln</tt> <b>[</b><tt>-fs</tt><b>]</b> <i>source_file</i> <tt>...</tt> <i>target_dir</i><tt><br>
|
|
</tt></code></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_03"></a>DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<p>In the first synopsis form, the <i>ln</i> utility shall create a new directory entry (link) at the destination path specified by
|
|
the <i>target_file</i> operand. If the <b>-s</b> option is specified, a symbolic link shall be created for the file specified by
|
|
the <i>source_file</i> operand. This first synopsis form shall be assumed when the final operand does not name an existing
|
|
directory; if more than two operands are specified and the final is not an existing directory, an error shall result.</p>
|
|
|
|
<p>In the second synopsis form, the <i>ln</i> utility shall create a new directory entry (link), or if the <b>-s</b> option is
|
|
specified a symbolic link, for each file specified by a <i>source_file</i> operand, at a destination path in the existing directory
|
|
named by <i>target_dir</i>.</p>
|
|
|
|
<p>If the last operand specifies an existing file of a type not specified by the System Interfaces volume of
|
|
IEEE Std 1003.1-2001, the behavior is implementation-defined.</p>
|
|
|
|
<p>The corresponding destination path for each <i>source_file</i> shall be the concatenation of the target directory pathname, a
|
|
slash character, and the last pathname component of the <i>source_file</i>. The second synopsis form shall be assumed when the
|
|
final operand names an existing directory.</p>
|
|
|
|
<p>For each <i>source_file</i>:</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>If the destination path exists:</p>
|
|
|
|
<ol type="a">
|
|
<li>
|
|
<p>If the <b>-f</b> option is not specified, <i>ln</i> shall write a diagnostic message to standard error, do nothing more with the
|
|
current <i>source_file</i>, and go on to any remaining <i>source_files</i>.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Actions shall be performed equivalent to the <a href="../functions/unlink.html"><i>unlink</i>()</a> function defined in the
|
|
System Interfaces volume of IEEE Std 1003.1-2001, called using <i>destination</i> as the <i>path</i> argument. If this
|
|
fails for any reason, <i>ln</i> shall write a diagnostic message to standard error, do nothing more with the current
|
|
<i>source_file</i>, and go on to any remaining <i>source_files</i>.</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If the <b>-s</b> option is specified, <i>ln</i> shall create a symbolic link named by the destination path and containing as its
|
|
pathname <i>source_file</i>. The <i>ln</i> utility shall do nothing more with <i>source_file</i> and shall go on to any remaining
|
|
files.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>If <i>source_file</i> is a symbolic link, actions shall be performed equivalent to the <a href=
|
|
"../functions/link.html"><i>link</i>()</a> function using the object that <i>source_file</i> references as the <i>path1</i>
|
|
argument and the destination path as the <i>path2</i> argument. The <i>ln</i> utility shall do nothing more with <i>source_file</i>
|
|
and shall go on to any remaining files.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>Actions shall be performed equivalent to the <a href="../functions/link.html"><i>link</i>()</a> function defined in the System
|
|
Interfaces volume of IEEE Std 1003.1-2001 using <i>source_file</i> as the <i>path1</i> argument, and the destination path
|
|
as the <i>path2</i> argument.</p>
|
|
</li>
|
|
</ol>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_04"></a>OPTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>ln</i> utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, <a href=
|
|
"../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax Guidelines</a>.</p>
|
|
|
|
<p>The following option shall be supported:</p>
|
|
|
|
<dl compact>
|
|
<dt><b>-f</b></dt>
|
|
|
|
<dd>Force existing destination pathnames to be removed to allow the link.</dd>
|
|
|
|
<dt><b>-s</b></dt>
|
|
|
|
<dd>Create symbolic links instead of hard links.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_05"></a>OPERANDS</h4>
|
|
|
|
<blockquote>
|
|
<p>The following operands shall be supported:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>source_file</i></dt>
|
|
|
|
<dd>A pathname of a file to be linked. If the <b>-s</b> option is specified, no restrictions on the type of file or on its
|
|
existence shall be made. If the <b>-s</b> option is not specified, whether a directory can be linked is
|
|
implementation-defined.</dd>
|
|
|
|
<dt><i>target_file</i></dt>
|
|
|
|
<dd>The pathname of the new directory entry to be created.</dd>
|
|
|
|
<dt><i>target_dir</i></dt>
|
|
|
|
<dd>A pathname of an existing directory in which the new directory entries are created.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_06"></a>STDIN</h4>
|
|
|
|
<blockquote>
|
|
<p>Not used.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_07"></a>INPUT FILES</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_08"></a>ENVIRONMENT VARIABLES</h4>
|
|
|
|
<blockquote>
|
|
<p>The following environment variables shall affect the execution of <i>ln</i>:</p>
|
|
|
|
<dl compact>
|
|
<dt><i>LANG</i></dt>
|
|
|
|
<dd>Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of
|
|
IEEE Std 1003.1-2001, <a href="../basedefs/xbd_chap08.html#tag_08_02">Section 8.2, Internationalization Variables</a> for
|
|
the precedence of internationalization variables used to determine the values of locale categories.)</dd>
|
|
|
|
<dt><i>LC_ALL</i></dt>
|
|
|
|
<dd>If set to a non-empty string value, override the values of all the other internationalization variables.</dd>
|
|
|
|
<dt><i>LC_CTYPE</i></dt>
|
|
|
|
<dd>Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as
|
|
opposed to multi-byte characters in arguments).</dd>
|
|
|
|
<dt><i>LC_MESSAGES</i></dt>
|
|
|
|
<dd>Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard
|
|
error.</dd>
|
|
|
|
<dt><i>NLSPATH</i></dt>
|
|
|
|
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
|
|
Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i> <img src="../images/opt-end.gif" alt=
|
|
"[Option End]" border="0"></dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_09"></a>ASYNCHRONOUS EVENTS</h4>
|
|
|
|
<blockquote>
|
|
<p>Default.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_10"></a>STDOUT</h4>
|
|
|
|
<blockquote>
|
|
<p>Not used.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_11"></a>STDERR</h4>
|
|
|
|
<blockquote>
|
|
<p>The standard error shall be used only for diagnostic messages.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_12"></a>OUTPUT FILES</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_13"></a>EXTENDED DESCRIPTION</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_14"></a>EXIT STATUS</h4>
|
|
|
|
<blockquote>
|
|
<p>The following exit values shall be returned:</p>
|
|
|
|
<dl compact>
|
|
<dt> 0</dt>
|
|
|
|
<dd>All the specified files were linked successfully.</dd>
|
|
|
|
<dt>>0</dt>
|
|
|
|
<dd>An error occurred.</dd>
|
|
</dl>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_15"></a>CONSEQUENCES OF ERRORS</h4>
|
|
|
|
<blockquote>
|
|
<p>Default.</p>
|
|
</blockquote>
|
|
|
|
<hr>
|
|
<div class="box"><em>The following sections are informative.</em></div>
|
|
|
|
<h4><a name="tag_04_75_16"></a>APPLICATION USAGE</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_17"></a>EXAMPLES</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_18"></a>RATIONALE</h4>
|
|
|
|
<blockquote>
|
|
<p>Some historic versions of <i>ln</i> (including the one specified by the SVID) unlink the destination file, if it exists, by
|
|
default. If the mode does not permit writing, these versions prompt for confirmation before attempting the unlink. In these
|
|
versions the <b>-f</b> option causes <i>ln</i> not to attempt to prompt for confirmation.</p>
|
|
|
|
<p>This allows <i>ln</i> to succeed in creating links when the target file already exists, even if the file itself is not writable
|
|
(although the directory must be). Early proposals specified this functionality.</p>
|
|
|
|
<p>This volume of IEEE Std 1003.1-2001 does not allow the <i>ln</i> utility to unlink existing destination paths by
|
|
default for the following reasons:</p>
|
|
|
|
<ul>
|
|
<li>
|
|
<p>The <i>ln</i> utility has historically been used to provide locking for shell applications, a usage that is incompatible with
|
|
<i>ln</i> unlinking the destination path by default. There was no corresponding technical advantage to adding this
|
|
functionality.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>This functionality gave <i>ln</i> the ability to destroy the link structure of files, which changes the historical behavior of
|
|
<i>ln</i>.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>This functionality is easily replicated with a combination of <a href="../utilities/rm.html"><i>rm</i></a> and <i>ln</i>.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>It is not historical practice in many systems; BSD and BSD-derived systems do not support this behavior. Unfortunately,
|
|
whichever behavior is selected can cause scripts written expecting the other behavior to fail.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>It is preferable that <i>ln</i> perform in the same manner as the <a href="../functions/link.html"><i>link</i>()</a> function,
|
|
which does not permit the target to exist already.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p>This volume of IEEE Std 1003.1-2001 retains the <b>-f</b> option to provide support for shell scripts depending on the
|
|
SVID semantics. It seems likely that shell scripts would not be written to handle prompting by <i>ln</i> and would therefore have
|
|
specified the <b>-f</b> option.</p>
|
|
|
|
<p>The <b>-f</b> option is an undocumented feature of many historical versions of the <i>ln</i> utility, allowing linking to
|
|
directories. These versions require modification.</p>
|
|
|
|
<p>Early proposals of this volume of IEEE Std 1003.1-2001 also required a <b>-i</b> option, which behaved like the
|
|
<b>-i</b> options in <a href="../utilities/cp.html"><i>cp</i></a> and <a href="../utilities/mv.html"><i>mv</i></a>, prompting for
|
|
confirmation before unlinking existing files. This was not historical practice for the <i>ln</i> utility and has been omitted.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_19"></a>FUTURE DIRECTIONS</h4>
|
|
|
|
<blockquote>
|
|
<p>None.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_20"></a>SEE ALSO</h4>
|
|
|
|
<blockquote>
|
|
<p><a href="chmod.html"><i>chmod</i>()</a> , <a href="find.html"><i>find</i></a> , <a href="pax.html"><i>pax</i></a> , <a href=
|
|
"rm.html"><i>rm</i></a> , the System Interfaces volume of IEEE Std 1003.1-2001, <a href=
|
|
"../functions/link.html"><i>link</i>()</a>, <a href="../functions/unlink.html"><i>unlink</i>()</a></p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_21"></a>CHANGE HISTORY</h4>
|
|
|
|
<blockquote>
|
|
<p>First released in Issue 2.</p>
|
|
</blockquote>
|
|
|
|
<h4><a name="tag_04_75_22"></a>Issue 6</h4>
|
|
|
|
<blockquote>
|
|
<p>The <i>ln</i> utility is updated to include symbolic link processing as defined in the IEEE P1003.2b draft standard.</p>
|
|
</blockquote>
|
|
|
|
<div class="box"><em>End of informative text.</em></div>
|
|
|
|
<hr>
|
|
<hr size="2" noshade>
|
|
<center><font size="2"><!--footer start-->
|
|
UNIX ® is a registered Trademark of The Open Group.<br>
|
|
POSIX ® is a registered Trademark of The IEEE.<br>
|
|
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
|
|
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
|
|
]</font></center>
|
|
|
|
<!--footer end-->
|
|
<hr size="2" noshade>
|
|
</body>
|
|
</html>
|
|
|