unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

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

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
       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).    ATTRIBUTE   TYPEATTRIBUTE  VALUE  AvailabilitySUNWcsu
       CSIEnabled


   /usr/xpg4/bin/ln
       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).    ATTRIBUTE  TYPEATTRIBUTE  VALUE  AvailabilitySUNWxcu4
       CSIEnabled Interface StabilityStandard


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)