Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

ln (Unix)

From Wikipedia, the free encyclopedia
Unix file management utility
ln
Example usage ofln utility
Original author(s)AT&T Bell Laboratories
Developer(s)Variousopen-source andcommercial developers
Initial releaseNovember 3, 1971; 53 years ago (1971-11-03)
Operating systemUnix,Unix-like,IBM i
PlatformCross-platform
TypeCommand
Licensecoreutils:GPLv3+

Theln command is a standardUnix command utility used to create ahard link or asymbolic link (symlink) to an existing file or directory.[1] The use of a hard link allows multiplefilenames to be associated with the samefile since a hard link points to theinode of a given file, the data of which is stored ondisk. On the other hand, symbolic links are special files that refer to other files byname.[2]

Theln command by default creates hard links, and when called with thecommand lineparameterln -s creates symbolic links.[3] Mostoperating systems prevent hard links todirectories from being created since such a capability could disrupt the structure of afile system and interfere with the operation of other utilities.[4] Theln command can however be used to create symbolic links to non-existent files.[2]

Versions

[edit]

ln appeared in Issue 2 of theX/Open Portability Guidelines.[5] The version ofln bundled inGNUcoreutils was written by Mike Parker and David MacKenzie.[6]The command is available as a separate package forMicrosoft Windows as part of theUnxUtils collection ofnativeWin32ports of common GNU Unix-like utilities.[7] Theln command has also been ported to theIBM i operating system.[8]

Links

[edit]

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

  1. Hard links, also known simply as links, are objects that associate the filename with theinode, and therefore the file contents itself.[1] A given file on disk could have multiple links scattered through thedirectory hierarchy, with all of the links being equivalent since they all associate with the sameinode.[9] 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, alink counter that is a part of theinode structure gets incremented; a file is not deleted until its reference count reaches zero.[1][10] However, hard links can only be created on the samefile system; this can prove to be a disadvantage.[11]
  2. Symbolic links are special files which, when encountered during pathname resolution, modify thepathname resolution to be taken to the location which the symbolic link contains. The content of the symbolic link is therefore the destinationpath string, which can also be examined using thereadlink command line utility.[12] 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).[9]

Specification

[edit]

Theln utility on systems compliant with theSingle Unix Specification is specified in the Shell and Utilities (XCU) document, which forms a part of the Single Unix Specification.[13] A mostly identical document is part ofPOSIX.[5]

The specification describes two ways of invoking theln utility. Specifically,

In the "single file" invocation theln utility creates a new hard link (directory entry) for the source file specified by thesource_file operand at the destination path specified by thetarget_file operand. However, if the-s option is specified, a symbolic link is created.
ln[-fs][-L|-P]source_filetarget_file
In the "multiple file" invocation theln utility creates a new hard link (directory entry), or if the-s option is specified, a symbolic link, for each file specified by thesource_file operand, at a destination path in an existing directory named by operandtarget_dir.
ln[-fs][-L|-P]source_file_1source_file_2...target_dir

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

-f Force existing destination pathnames to be removed to allow the link.
-L For eachsource_file operand that names a file that is a symbolic link, create a hard link to the file referenced by the symbolic link.
-P For eachsource_file operand that names a file that is a symbolic link, create a (hard) link to the symbolic link itself.
-s Create symbolic links instead of hard links. If the -s option is specified, the -L and -P options are silently ignored.
If more than one of the mutually-exclusive options-L and-P is specified the last option specified determines the behavior of the utility.
If the-s option is not specified and neither a-L nor a-P option is specified, the implementation defines which of the-L and-P options will be used as the default.

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

See also

[edit]

References

[edit]
  1. ^abcKernighan, Brian W.; Pike, Rob (1984).The Unix programming environment. Englewood Cliffs, N.J.: Prentice-Hall. p. 59.ISBN 013937681X.
  2. ^ab"GNU Coreutils: ln invocation".gnu.org. Free Software Foundation, Inc. Retrieved7 August 2015.
  3. ^"ln - The Open Group Base Specifications Issue 7".pubs.opengroup.org. The IEEE and The Open Group. Retrieved7 August 2015.
  4. ^"Why are hard links not allowed to directories in UNIX/Linux?".unix.stackexchange.com. Retrieved7 August 2015.
  5. ^abln – Shell and Utilities Reference,The Single UNIX Specification, Version 4 fromThe Open Group
  6. ^ln(1) – Linux General CommandsManual
  7. ^"Native Win32 ports of some GNU utilities".unxutils.sourceforge.net.
  8. ^IBM."IBM System i Version 7.2 Programming Qshell"(PDF).IBM. Retrieved2020-09-05.
  9. ^abLoosemore, Sandra; Stallman, Richard M.; McGrath, Roland; Oram, Andrew; Drepper, Ulrich.The GNU C Library Reference Manual(PDF). Free Software Foundation, Inc. p. 392. Retrieved7 August 2015.
  10. ^"Speaking UNIX: It is all about the inode".ibm.com. IBM developerWorks. Retrieved7 August 2015.
  11. ^Bovet, Daniel P.; Cesati, Marco (2005).Understanding the Linux Kernel (3rd ed.). Boston, MA: Safari Tech Books Online. p. 14.ISBN 0596005652.
  12. ^"readlink(1) - Linux man page".linux.die.net. Retrieved7 August 2015.
  13. ^"The Single UNIX Specification, Version 4 - Overview".unix.org. unix.org. Retrieved7 August 2015.

External links

[edit]
The WikibookGuide to Unix has a page on the topic of:File System Utilities - ln
File system
Processes
User environment
Text processing
Shell builtins
Searching
Documentation
Software development
Miscellaneous
File system
Text utilities
Shell utilities
Retrieved from "https://en.wikipedia.org/w/index.php?title=Ln_(Unix)&oldid=1173816408"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp