Symbolic link

[1] Symbolic links are supported by POSIX and by most Unix-like operating systems, such as FreeBSD, Linux, and macOS.

[2][3][4] By 1978 minicomputer operating systems from DEC, and in Data General's RDOS included symbolic links.

A symbolic link contains a text string that is automatically interpreted and followed by the operating system as a path to another file or directory.

Symbolic links pointing to moved or non-existing targets are sometimes called broken, orphaned, dead, or dangling.

However, they have the effect of changing an otherwise hierarchic filesystem from a tree into a directed graph, which can have consequences for such simple operations as determining the current directory of a process.

[5] Programs that need to handle symbolic links specially (e.g., shells and backup utilities) thus need to identify and manipulate them directly.

Some Unix as well as Linux distributions use symbolic links extensively in an effort to reorder the file system hierarchy.

An improvement, called fast symlinks, allowed storage of the target path within the data structures used for storing file information on disk (inodes).

Systems with fast symlinks often fall back to using the original method if the target path exceeds the available inode space.

A traditional Unix filesystem has a tree structure,[14] however symbolic links allow it to contain loops.

Third-party drivers are required to enable support for NTFS symbolic links in Windows XP.

Symbolic links are designed to aid in migration and application compatibility with POSIX operating systems.

For example, Windows Vista users must manually indicate when creating a symbolic link whether it is a file or a directory.

For instance, bash builtin commands pwd and cd operate on the current logical directory.

When any path is used with a system call, any use of .. will use the actual filesystem parent of the directory containing the .. pseudo-directory entry.

Most noticeably, Backup suffers from this problem and will issue an error message 0x80070003[21] when the folders to be backed up contain a reparse point.

Shortcuts, which are supported by the graphical file browsers of some operating systems, may resemble symbolic links but differ in a number of important ways.

It uses identical programming and user utility interfaces as Unix (see above), but creates Windows shortcuts (.lnk files) with additional information used by Cygwin at the time of symlink resolution.

Cygwin has no way to specify shortcut-related information – such as working directory or icon – as there is no place for such parameters in ln -s command.

In Mac OS, applications or users can also employ aliases, which have the added feature of following the target, even if it is moved to another location on the same volume.

However, shadows, due to the fully object-oriented System Object Model, are considerably more powerful and robust than a simple link.

Operating systems that make use of variant symbolic links include NetBSD, DragonFly BSD, Domain/OS.

Pyramid Technology's OSx operating system implemented conditional symbolic links which pointed to different locations depending on which universe a program was running in.

For example: if the ps command was run in the att universe, then the symbolic link for the directory /bin would point to /.attbin and the program /.attbin/ps would be executed.