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

FreeBSD Manual Pages

  
 
  

home | help
LN(1V)									LN(1V)

NAME
       ln - make hard or symbolic links	to files

SYNOPSIS
       ln [ -fs	] filename [ linkname ]
       ln [ -fs	] pathname...  directory

SYSTEM V SYNOPSIS
       /usr/5bin/ln [ -fFs ] filename [	linkname ]
       ln [ -fFs ] pathname...	directory

AVAILABILITY
       The  System  V  version	of this	command	is available with the System V
       software	installation option.  Refer to for information on how  to  in-
       stall optional software.

DESCRIPTION
       ln  creates  an additional directory entry, called a link, to a file or
       directory.  Any number of links can be assigned to a file.  The	number
       of  links  does	not affect other file attributes such as size, protec-
       tions, data, etc.

       filename	is the name of the original file or  directory.	  linkname  is
       the  new	 name  to associate with the file or filename.	If linkname is
       omitted,	the last component of filename is used	as  the	 name  of  the
       link.

       If  the	last  argument	is the name of a directory, symbolic links are
       made in that directory for each pathname	argument;  ln  uses  the  last
       component of each pathname as the name of each link in the named	direc-
       tory.

       A hard link (the	default) is a standard directory entry just  like  the
       one made	when the file was created.  Hard links can only	be made	to ex-
       isting files.  Hard links cannot	be made	across file systems (disk par-
       titions,	mounted	file systems).	To remove a file, all hard links to it
       must be removed,	including the name by which it was first created;  re-
       moving the last hard link releases the inode associated with the	file.

       A  symbolic link, made with the -s option, is a special directory entry
       that points to another named file.  Symbolic links can span  file  sys-
       tems and	point to directories.  In fact,	you can	create a symbolic link
       that points to a	file that is currently absent from  the	 file  system;
       removing	 the  file that	it points to does not affect or	alter the sym-
       bolic link itself.

       A symbolic link to a directory behaves differently than you  might  ex-
       pect  in	 certain  cases.   While an ls(1V) on such a link displays the
       files in	the pointed-to directory,  an  `ls  -l'	 displays  information
       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  cd(1)	to a directory through a symbolic link,	you wind up in
       the pointed-to location 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.   For  in-
       stance,	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 user's can avoid	any resulting navigation problems by using the
       pushd and popd built-in commands	instead	of cd.

SYSTEM V DESCRIPTION
       The  System  V  version of ln behaves as	described above	except for the
       following.  If the linkname is an existing file and its mode  does  not
       forbid  writing,	 then its contents are destroyed.  If however its mode
       does not	allow writing, the mode	is printed, and	the user asked	for  a
       response.

OPTIONS
       -f     Force  a	hard link to a directory -- this option	is only	avail-
	      able to the super-user.

       -s     Create a symbolic	link or	links.

SYSTEM V OPTIONS
       -f     Force files to be	linked without displaying permissions,	asking
	      questions	or reporting errors.

       -F     Force  a	hard link to a directory -- this option	is only	avail-
	      able to the super-user.

       -s     Create a symbolic	link or	links.

EXAMPLE
       The commands below illustrate the effects of the	different forms	of the
       ln command:
	      example% ln file link
	      example% ls -F file link
	      file   link
	      example% ln -s file symlink
	      example% ls -F file symlink
	      file   symlink@
	      example% ls -li file link	symlink
	       10606 -rw-r--r--	 2 user		   0 Jan 12 00:06 file
	       10606 -rw-r--r--	 2 user		   0 Jan 12 00:06 link
	       10607 lrwxrwxrwx	 1 user		   4 Jan 12 00:06 symlink -> file
	      example% ln -s nonesuch devoid
	      example% ls -F devoid
	      devoid@
	      example% cat devoid
	      devoid: No such file or directory
	      example% ln -s /proto/bin/* /tmp/bin
	      example% ls -F /proto/bin	/tmp/bin
	      /proto/bin:
	      x*      y*      z*

	      /tmp/bin:
	      x@      y@      z@

SEE ALSO
       cp(1),  ls(1V),	mv(1),	rm(1),	link(2V),  readlink(2),	stat(2V), sym-
       link(2)

BUGS
       When the	last argument is a directory, simple basenames should  not  be
       used for	pathname arguments.  If	a basename is used, the	resulting sym-
       bolic link points to itself:
	      example% ln -s file /tmp
	      example% ls -l /tmp/file
	      lrwxrwxrwx  1 user	    4 Jan 12 00:16 /tmp/file ->	file
	      example% cat /tmp/file
	      /tmp/file: Too many levels of symbolic links

       To avoid	this problem, use full pathnames, or prepend  a	 reference  to
       the PWD variable	to files in the	working	directory:
	      example% rm /tmp/file
	      example% ln -s $PWD/file /tmp
	      lrwxrwxrwx  1 user	    4 Jan 12 00:16 /tmp/file ->	/home/user/subdir/file

			       16 September 1989			LN(1V)

NAME | SYNOPSIS | SYSTEM V SYNOPSIS | AVAILABILITY | DESCRIPTION | SYSTEM V DESCRIPTION | OPTIONS | SYSTEM V OPTIONS | EXAMPLE | SEE ALSO | BUGS

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

home | help