Kalpana Kalpana (Editor)

Ln (Unix)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

The ln command is a standard Unix command utility used to create a hard link or a symbolic link (symlink) to an existing file. The use of a hard link allows multiple filenames to be associated with the same file since a hard link points to the inode of a given file, the data of which is stored on disk. On the other hand, symbolic links are special files that refer to other files by name.

Contents

The ln command by default creates hard links, and when called with the command line parameter ln '-s' creates symbolic links. Most operating systems prevent hard links to directories from being created since such a capability could potentially disrupt the structure of a file system and interfere with the operation of other utilities. The ln command can however be used to create symbolic links to non-existent files.

<check><retrive>

Links allow more than one filename to refer to the same file as in the case of a hard link or act as pointers to a filename as in the case of a soft link. Both hard links and soft links can be created by the ln command. Specifically,

  1. Hard links also known simply as links are objects that associate the filename with the inode and therefore the file contents itself. A given file on disk could have multiple links scattered through the directory hierarchy with all of the links being equivalent since they all associate with the same inode. Creating a link therefore does not copy the contents of the file but merely causes another name to be associated with the same contents. Each time a hard link is created a link counter that is a part of the inode structure gets incremented; a file is not deleted until its reference count reaches zero. Hard links can however only be created on the same file system; this can prove to be a particular disadvantage.
  2. Symbolic links are special files which when encountered during pathname resolution modify the pathname resolution to be taken to the location which the symbolic link contains. The content of the symbolic link is therefore the destination path string, which can also be examined using the readlink command line utility. The symbolic link may contain an arbitrary string which does not refer to the location of an existing file, such a symbolic link will fail until a file is created at the location which is contained by the symbolic link. By contrast a symbolic link to an existing file will fail if the existing file is moved to a different location (or renamed).

Specification

The ln utility on systems compliant with the Single Unix Specification is specified in the Shell and Utilities (XCU) document which forms a part of the Single Unix Specification.

The specification describes two ways of invoking the ln utility. Specifically,

The specification also specifies the command line options that must be supported:

If neither target file nor target directory are specified, links will be created in the current working directory.

References

Ln (Unix) Wikipedia