Ln (Unix)

The command is a standard Unix command utility used to create a hard link or a symbolic link (symlink) to an existing file or directory. 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 .
The command by default creates hard links, and when called with the command line parameter creates symbolic links. Most operating systems prevent hard links to directories from being created since such a capability could disrupt the structure of a file system and interfere with the operation of other utilities. The command can however be used to create symbolic links to non-existent files.
History.
ln appeared in Issue 2 of the X/Open Portability Guidelines. The version of bundled in GNU coreutils was written by Mike Parker and David MacKenzie.
The command has also been ported to the IBM i operating system.
Links.
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 command. Specifically,
Specification.
The 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. A mostly identical document is part of POSIX.
The specification describes two ways of invoking the utility. Specifically,
ln [-fs] [-L|-P] source_file target_file
ln [-fs] [-L|-P] source_file_1 source_file_2 ... target_dir
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.