*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> ln (1)              



NAME    [Toc]    [Back]

       ln - Make a hard link or a symbolic link to a file

SYNOPSIS    [Toc]    [Back]

       ln [-fs] sourcename [targetname]

       ln [-fs] sourcename... targetdirectory

       ln [-fns] sourcename targetname

       ln [-fns] sourcename... targetdirectory

STANDARDS    [Toc]    [Back]

       Interfaces  documented  on  this reference page conform to
       industry standards as follows:

       ln:  XCU5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

OPTIONS    [Toc]    [Back]

       Forces  the  removal  of existing target path names before
       linking.  [Tru64 UNIX]  Creates  symbolic  links.   [Tru64
       UNIX]  If  the  target  already  exists, do not create the
       link, and issue an error message.  The -f option overrides
       the -n option.  To use the -n option, the CMD_ENV environment
 variable must be set to svr4.

OPERANDS    [Toc]    [Back]

       Path name of a file to be linked.  The path  name  of  the
       new  directory  entry  to  be  created.  A path name of an
       existing directory in which new entries are to be created.

DESCRIPTION    [Toc]    [Back]

       A  link  is  a directory entry that refers to a file. Usually,
 sourcename is an existing file, and targetname  does
       not  exist.   Thus,  targetname  becomes  a  new  name, or
       pseudonym for sourcename.  A file, together with its  size
       and all its protection information, can have several links
       to it.  There are two kinds of links: hard links and  symbolic

       [Tru64  UNIX]  By default ln makes hard links. A hard link
       to a file is indistinguishable from the original directory
       entry.   Changes  to  either  file affect both files. Hard
       links must be made to files in the local file system: they
       cannot  span file systems and cannot refer to directories.

       [Tru64 UNIX]  With the -s option, the command  makes  symbolic
  links,  including  Context Dependent Symbolic Links
       (CDSLs). A symbolic link contains the name of the file  to
       which  it  is  linked. The referenced file is used when an
       open() operation is performed on the link.  A stat() on  a
       symbolic  link returns the linked-to file. An lstat() must
       be done to obtain information about the  link.  The  readlink()
 call can be used to read the contents of a symbolic
       link. Symbolic links can span file systems and  can  refer
       to directories.

       Given  one  or  two  arguments,  ln  creates  a link to an
       existing sourcename file. If targetname is  omitted,  then
       sourcename is used for the link, but it must be created in
       a different directory than that of  the  source  file.  If
       targetname  is  given, the link has that name. The targetname
 can also be a directory in which to place  the  link;
       otherwise, it is placed in the current directory.  If only
       the directory is specified, the link is made to  the  last
       component of the sourcename file.

       Given  more  than two arguments, ln makes links to all the
       specified files (sourcename) in the specified targetdirectory.
  The  links  made have the same name as the files to
       which they are being linked.

       If targetname exists, the command  aborts  unless  the  -f
       option is used.

   SVID and System V Release 4 Conformance    [Toc]    [Back]
       [Tru64 UNIX]  When the environment variable CMD_ENV is set
       to svr4, the behavior of the base ln command is compatible
       with its behavior under System V Release 4.  There is also
       a version of the ln command provided in the System V habitat
  that  is conformant with the SVID standard.  For more
       information on the System V habitat, see the  Command  and
       Shell User's Guide.

       This  section  documents  the behavior of the habitat version,
 and of the base version with CMD_ENV  set  to  svr4,
       insofar  as  the behavior differs from that of the base ln
       command without CMD_ENV set.  This section discusses  only
       hard links.

       [Tru64  UNIX]  In  contrast to the base ln command without
       CMD_ENV set, these versions of ln  silently  overwrite  an
       existing targetname if it is not a directory and has write
       permission.  The -n option, available  only  in  the  base
       command  when CMD_ENV is set, prevents overwriting such an
       existing target.  Thus, for such an  existing  targetname,
       the  base  command ln -n with CMD_ENV set behaves the same
       as does the base command  ln  with  no  options  and  with
       CMD_ENV not set.

       [Tru64  UNIX]  If  the  targetname exists, is not a directory,
 and does not have write permission,  three  possible
       conditions can exist, with each condition producing a different
 behavior: [Tru64 UNIX]  If the  standard  input  is
       not  a  terminal,  the command attempts to silently unlink
       targetname  and  link  the  source  file  to  it.   [Tru64
       UNIX]  If the standard input is a terminal and the command
       line does not include the -f option, the  command  prompts
       the  user for permission to unlink targetname. The habitat
       command compares the user response to the  system  defined
       values  for YESSTR and NOSTR. If the user response matches
       the value for YESSTR, the command attempts to  unlink  the
       target  file  and  link the source file to targetname.  If
       the user response matches NOSTR, the command aborts.  Similarly,
  with the base command and CMD_ENV set, the operation
 aborts unless the user  response  begins  with  a  y.
       [Tru64  UNIX]  If the standard input is a terminal and the
       command line includes the -f option, the command  attempts
       to  silently unlink targetname and link the source file to

NOTES    [Toc]    [Back]

       [Tru64 UNIX]  You cannot link files  across  file  systems
       without  using  the  -s option. That is, links across file
       systems must be symbolic links.

EXIT STATUS    [Toc]    [Back]

       The following exit values are returned: All the  specified
       files were linked successfully.  An error occurred.

EXAMPLES    [Toc]    [Back]

       The  following  example  creates  a  link  (also called an
       alias) to a file: ln  chap1  intro

              The previous command links chap1 to the intro file.
              If  intro  does not already exist, the file name is
              created. If intro does exist and permissions allow,
              the  file  is replaced by a link to chap1. The following
 command forces the link even if intro exists
              and  permissions do not allow it to be overwritten:
              ln -f chap1 intro

              The previous command  causes  chap1  and  intro  to
              refer  to  the  same  file. Any changes made to one
              file also appear in the other file. If one name  is
              deleted  with the rm command, the file is not actually
 deleted because it  remains  under  the  other
              name.   The  following  command links a file to the
              same name in an existing directory: ln index manual

              The  previous  command  links index to the new name
              manual/index.  The following command links  several
              files  to  names  in  another  directory: ln  chap2
              jim/chap3  /u/manual

              The previous command links chap2 to  the  new  name
              /u/manual/chap2  and  links  jim/chap3  to  /u/manual/chap3.
  The following command uses ln with pattern-matching
 characters: ln  manual/*  .

              The  previous command links all files in the directory
 manual into the current directory (.),  giving
              them the same names they have in manual.  Note that
              you must type a space between the * (asterisk)  and
              the (dot).  The following command creates a link to
              the  final  component  of  a  path  name:   ln   -s

              This creates a link, e, in the current directory to
              the file /a/b/c/d/e.  The following command creates
              a  link  to  a directory.  In this example, t1 is a
              subdirectory under d1: ln -s /d1/t1 /d2

              This creates a link from /d1/t1 to /d2 as  follows:
              #  ls  -lF /d2 lrwxrwxrwx   1  root  system  11 Dec
              13 14:00 /d2@ -> /d1/t1/

              The path name for sourcename must be  specified  if
              the  sourcename  differs from that of the targetdirectory.
 If the path name is not specified, a  link
              is   created   to  a  file,  not  to  the  intended
              directory.  For example, if the path name  was  not
              specified  in  this example, ls -s t1 /d2 creates a
              link to a file named t1, instead of  the  directory


       The  following  environment variables affect the execution
       of ln: [Tru64 UNIX]  When this environment variable is set
       to svr4, the behavior of the ln command is compatible with
       its behavior under System V  Release  4.   The  -n  option
       requires  that  this  environment variable be set to svr4.
       Provides a  default  value  for  the  internationalization
       variables  that  are  unset  or  null. If LANG is unset or
       null, the corresponding value from the default  locale  is
       used.   If  any of the internationalization variables contain
 an invalid setting, the utility behaves as if none of
       the  variables  had  been  defined.  If set to a non-empty
       string value, overrides the values of all the other internationalization
  variables.  Determines the locale for the
       interpretation of sequences of bytes of text data as characters
  (for  example, single-byte as opposed to multibyte
       characters in arguments).  Determines the locale  for  the
       format  and  contents  of  diagnostic  messages written to
       standard error.  Determines the location of message  catalogues
 for the processing of LC_MESSAGES.

SEE ALSO    [Toc]    [Back]

       Commands:  cp(1), mv(1), rm(1)

       Functions:  chmod(2),   link(2),   open(2),   readlink(2),
       stat(2), symlink(2)

       Standards:  standards(5)

       Command and Shell User's Guide

[ Back ]
 Similar pages
Name OS Title
link OpenBSD make a hard file link
link NetBSD make a hard file link
link FreeBSD make a hard file link
symlink HP-UX make symbolic link to a file
symlink OpenBSD make symbolic link to a file
symlink NetBSD make symbolic link to a file
symlink Tru64 Make a symbolic link to a file
symlink FreeBSD make symbolic link to a file
symlink IRIX make a symbolic link to a file
mkcdsl Tru64 Make a context-dependent symbolic link (CDSL)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service