Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ln(1)				 User Commands				 ln(1)

NAME
       ln - make hard or symbolic links	to files

SYNOPSIS
       /usr/bin/ln [-fns] source_file [target]

       /usr/bin/ln [-fns] source_file... target

       /usr/xpg4/bin/ln	[-fs] source_file [target]

       /usr/xpg4/bin/ln	[-fs] source_file... target

DESCRIPTION
       In  the	first  synopsis	 form,	the ln utility creates a new directory
       entry (link) for	the file specified by source_file, at the  destination
       path  specified by target. If target is not specified, the link is made
       in the current directory. This first synopsis form is assumed when  the
       final operand does not name an existing directory; if more than two op-
       erands are specified and	the final is not  an  existing	directory,  an
       error will result.

       In  the	second	synopsis  form,	the ln utility creates a new directory
       entry for each file specified by	a source_file operand, at  a  destina-
       tion path in the	existing directory named by target.

       The  ln	utility	 may  be  used	to create both hard links and symbolic
       links. A	hard link is a pointer to a file and is	indistinguishable from
       the original directory entry. Any changes to a file are effective inde-
       pendent of the name used	to reference the file. Hard links may not span
       file systems and	may not	refer to directories.

       ln  by  default creates hard links. source_file is linked to target. If
       target is a directory, another file named  source_file  is  created  in
       target and linked to the	original source_file.

       If  target  is  an existing file	and the	-f option is not specified, ln
       will write a diagnostic message to standard error, do nothing more with
       the current source_file,	and go on to any remaining source_files.

       A  symbolic  link is an indirect	pointer	to a file; its directory entry
       contains	the name of the	file to	which it is linked. Symbolic links may
       span file systems and may refer to directories.

       File  permissions for target may	be different from those	displayed with
       an -l listing of	the ls(1) command. To display the permissions of  tar-
       get, use	ls -lL.	See stat(2) for	more information.

   /usr/bin/ln
       If  /usr/bin/ln	determines that	the mode of target forbids writing, it
       prints the mode (see chmod(1)), asks for	 a  response,  and  reads  the
       standard	 input	for one	line. If the response is affirmative, the link
       occurs, if permissible. Otherwise, the command exits.

   /usr/xpg4/bin/ln
       When creating a hard link, and the source file  is  itself  a  symbolic
       link, the target	will be	a hard link to the file	referenced by the sym-
       bolic link, not to the symbolic link object itself (source_file).

OPTIONS
       The  following  options	are  supported	for   both   /usr/bin/ln   and
       /usr/xpg4/bin/ln:

       -f	Links  files without questioning the user, even	if the mode of
		target forbids writing.	This is	the default  if	 the  standard
		input is not a terminal.

       -s	Creates	a symbolic link.

		If  the	-s option is used with two arguments, target may be an
		existing directory or a	non-existent file. If  target  already
		exists	 and  is  not  a  directory,  an  error	 is  returned.
		source_file may	be any path name and need  not	exist.	If  it
		exists,	it may be a file or directory and may reside on	a dif-
		ferent file system from	 target.  If  target  is  an  existing
		directory, a file is created in	directory target whose name is
		source_file or the last	component of source_file. This file is
		a  symbolic  link  that	references source_file.	If target does
		not exist, a file with name target is created and it is	a sym-
		bolic link that	references source_file.

		If  the	-s option is used with more than two arguments,	target
		must be	an existing directory or an error  will	 be  returned.
		For  each  source_file,	a link is created in target whose name
		is the last component of source_file. Each new source_file  is
		a  symbolic  link  to  the original source_file. The files and
		target may reside on different file systems.

   /usr/bin/ln
       The following option is supported for /usr/bin/ln only:

       -n	If target is an	existing file, writes a	diagnostic message  to
		stderr	and  goes  on  to  any	remaining source_files.	The -f
		option overrides this option. This is the default behavior for
		/usr/bin/ln and	/usr/xpg4/bin/ln, and is silently ignored.

OPERANDS
       The following operands are supported:

       source_file     A  path name of a file to be linked. This can be	either
		       a regular or special file. If the -s option  is	speci-
		       fied, source_file can also be a directory.

       target	       The path	name of	the new	directory entry	to be created,
		       or of an	existing directory in which the	new  directory
		       entries are to be created.

USAGE
       See largefile(5)	for the	description of the behavior of ln when encoun-
       tering files greater than or equal to 2 Gbyte ( 2**31 bytes).

ENVIRONMENT VARIABLES
       See environ(5) for descriptions of the following	environment  variables
       that  affect  the execution of ln: LANG,	LC_ALL,	LC_CTYPE, LC_MESSAGES,
       and NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0	All the	specified files	were linked successfully

       >0	An error occurred.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

   /usr/bin/ln
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWcsu			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+

   /usr/xpg4/bin/ln
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWxcu4			   |
       +-----------------------------+-----------------------------+
       |CSI			     |Enabled			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       chmod(1),  ls(1),  stat(2),  attributes(5),  environ(5),	 largefile(5),
       standards(5)

NOTES
       A  symbolic  link  to  a	 directory  behaves differently	than you might
       expect in certain cases.	While an ls(1) command on such a link displays
       the files in the	pointed-to directory, entering ls -l displays informa-
       tion about the link itself:

       example%	ln -s dir link
       example%	ls link
       file1 file2 file3 file4
       example%	ls -l link
       lrwxrwxrwx  1 user	     7 Jan 11 23:27 link -> dir

       When you	change to a directory (see cd(1))  through  a  symbolic	 link,
       using  /usr/bin/sh or /usr/bin/csh, you wind up in the pointed-to loca-
       tion within the file system. This means that  the  parent  of  the  new
       working	directory  is not the parent of	the symbolic link, but rather,
       the parent of the pointed-to directory.	This  will  also  happen  when
       using  cd with the -P option from /usr/bin/ksh or /usr/xpg4/bin/sh. For
       instance, in the	following case,	the final working  directory  is  /usr
       and not /home/user/linktest.

       example%	pwd
       /home/user/linktest
       example%	ln -s /usr/tmp symlink
       example%	cd symlink
       example%	cd ..
       example%	pwd
       /usr

       C  shell	users can avoid	any resulting navigation problems by using the
       pushd and popd built-in commands	instead	of cd.

SunOS 5.10			  25 Mar 2004				 ln(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | ENVIRONMENT VARIABLES | EXIT STATUS | ATTRIBUTES | SEE ALSO | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ln&sektion=1&manpath=SunOS+5.10>

home | help