unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



ln(1)									ln(1)



NAME

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

SYNOPSIS

  ln [-fs] sourcename [targetname]

  ln [-fs] sourcename... targetdirectory

  ln [-fns] sourcename targetname

  ln [-fns] sourcename... targetdirectory

STANDARDS

  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 indus-
  try standards	and associated tags.

OPTIONS

  -f  Forces the removal of existing target path names before linking.

  -s  [Tru64 UNIX]  Creates symbolic links.

  -n  [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

  sourcename
      Path name	of a file to be	linked.

  targetname
      The path name of the new directory entry to be created.

  targetdirectory
      A	path name of an	existing directory in which new	entries	are to be
      created.









DESCRIPTION

  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 links.

  [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, includ-
  ing 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 direc-
  tories.

  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


  [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	Sys-
  tem 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	con-
  dition 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	per-
       mission 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 tar-
       getname and link	the source file	to it.

NOTES

  [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

  The following	exit values are	returned:

  0   All the specified	files were linked successfully.

  >>0  An error occurred.

EXAMPLES

   1.  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	per-
       missions	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.

   2.  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.

   3.  The following command links several files to names in another direc-
       tory:
	    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.

   4.  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).

   5.  The following command creates a link to the final component of a	path
       name:
	    ln -s /a/b/c/d/e

       This creates a link, e, in the current directory	to the file
       /a/b/c/d/e.

   6.  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
       /d1/t1.

ENVIRONMENT VARIABLES

  The following	environment variables affect the execution of ln:

  CMD_ENV
      [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.

  LANG
      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.

  LC_ALL
      If set to	a non-empty string value, overrides the	values of all the
      other internationalization variables.

  LC_CTYPE
      Determines the locale for	the interpretation of sequences	of bytes of
      text data	as characters (for example, single-byte	as opposed to multi-
      byte characters in arguments).

  LC_MESSAGES
      Determines the locale for	the format and contents	of diagnostic mes-
      sages written to standard	error.

  NLSPATH
      Determines the location of message catalogues for	the processing of
      LC_MESSAGES.







SEE ALSO

  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