unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

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
       install 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
       existing files.  Hard links cannot be made across  file  systems  (disk
       partitions, mounted file systems).  To remove a file, all hard links to
       it must be removed, including the name by which it was  first  created;
       removing  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
       expect 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
       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 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)