xref: /freebsd/bin/ln/ln.1 (revision 6af83ee0d2941d18880b6aaa2b4facd1d30c6106)
1.\"-
2.\" Copyright (c) 1980, 1990, 1993
3.\"	The Regents of the University of California.  All rights reserved.
4.\"
5.\" This code is derived from software contributed to Berkeley by
6.\" the Institute of Electrical and Electronics Engineers, Inc.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\"    notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\"    notice, this list of conditions and the following disclaimer in the
15.\"    documentation and/or other materials provided with the distribution.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\"    may be used to endorse or promote products derived from this software
18.\"    without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\"	@(#)ln.1	8.2 (Berkeley) 12/30/93
33.\" $FreeBSD$
34.\"
35.Dd December 30, 1993
36.Dt LN 1
37.Os
38.Sh NAME
39.Nm ln ,
40.Nm link
41.Nd make links
42.Sh SYNOPSIS
43.Nm
44.Op Fl fhinsv
45.Ar source_file
46.Op Ar target_file
47.Nm
48.Op Fl fhinsv
49.Ar source_file ...
50.Ar target_dir
51.Nm link
52.Ar source_file Ar target_file
53.Sh DESCRIPTION
54The
55.Nm
56utility creates a new directory entry (linked file) which has the
57same modes as the original file.
58It is useful for maintaining multiple copies of a file in many places
59at once without using up storage for the
60.Dq copies ;
61instead, a link
62.Dq points
63to the original copy.
64There are two types of links; hard links and symbolic links.
65How a link
66.Dq points
67to a file is one of the differences between a hard and symbolic link.
68.Pp
69The options are as follows:
70.Bl -tag -width flag
71.It Fl f
72If the target file already exists,
73then unlink it so that the link may occur.
74(The
75.Fl f
76option overrides any previous
77.Fl i
78options.)
79.It Fl h
80If the
81.Ar target_file
82or
83.Ar target_dir
84is a symbolic link, do not follow it.
85This is most useful with the
86.Fl f
87option, to replace a symlink which may point to a directory.
88.It Fl i
89Cause
90.Nm
91to write a prompt to standard error if the target file exists.
92If the response from the standard input begins with the character
93.Sq Li y
94or
95.Sq Li Y ,
96then unlink the target file so that the link may occur.
97Otherwise, do not attempt the link.
98(The
99.Fl i
100option overrides any previous
101.Fl f
102options.)
103.It Fl n
104Same as
105.Fl h ,
106for compatibility with other
107.Nm
108implementations.
109.It Fl s
110Create a symbolic link.
111.It Fl v
112Cause
113.Nm
114to be verbose, showing files as they are processed.
115.El
116.Pp
117By default,
118.Nm
119makes
120.Em hard
121links.
122A hard link to a file is indistinguishable from the original directory entry;
123any changes to a file are effectively independent of the name used to reference
124the file.
125Hard links may not normally refer to directories and may not span file systems.
126.Pp
127A symbolic link contains the name of the file to
128which it is linked.
129The referenced file is used when an
130.Xr open 2
131operation is performed on the link.
132A
133.Xr stat 2
134on a symbolic link will return the linked-to file; an
135.Xr lstat 2
136must be done to obtain information about the link.
137The
138.Xr readlink 2
139call may be used to read the contents of a symbolic link.
140Symbolic links may span file systems and may refer to directories.
141.Pp
142Given one or two arguments,
143.Nm
144creates a link to an existing file
145.Ar source_file .
146If
147.Ar target_file
148is given, the link has that name;
149.Ar target_file
150may also be a directory in which to place the link;
151otherwise it is placed in the current directory.
152If only the directory is specified, the link will be made
153to the last component of
154.Ar source_file .
155.Pp
156Given more than two arguments,
157.Nm
158makes links in
159.Ar target_dir
160to all the named source files.
161The links made will have the same name as the files being linked to.
162.Pp
163When the utility is called as
164.Nm link ,
165exactly two arguments must be supplied,
166neither of which may specify a directory.
167No options may be supplied in this simple mode of operation,
168which performs a
169.Xr link 2
170operation using the two passed arguments.
171.Sh COMPATIBILITY
172The
173.Fl h ,
174.Fl i ,
175.Fl n
176and
177.Fl v
178options are non-standard and their use in scripts is not recommended.
179They are provided solely for compatibility with other
180.Nm
181implementations.
182.Sh SEE ALSO
183.Xr link 2 ,
184.Xr lstat 2 ,
185.Xr readlink 2 ,
186.Xr stat 2 ,
187.Xr symlink 2 ,
188.Xr symlink 7
189.Sh STANDARDS
190The
191.Nm
192utility conforms to
193.St -p1003.2-92 .
194.Pp
195The simplified
196.Nm link
197command conforms to
198.St -susv2 .
199.Sh HISTORY
200An
201.Nm
202command appeared in
203.At v1 .
204