符号链接(软链接)是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。[1] 符号链接最早在4.2BSD版本中出现(1983年)。今天POSIX操作系统标准、大多数类Unix系统、Windows Vista、Windows 7都支持符号链接。Windows 2000与Windows XP在某种程度上也支持符号链接。
符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。
一个符号链接文件仅包含有一个文本字符串,其被操作系统解释为一条指向另一个文件或者目录的路径。它是一个独立文件,其存在并不依赖于目标文件。如果删除一个符号链接,它指向的目标文件不受影响。如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件。这种情况被有时被称为被遗弃。
- 中文名
- 符号链接
- 外文名
- Symbolic link
路径可以是任意文件或目录,可以链接不同文件系统的文件。(链接文件可以链接不存在的文件,这就产生一般称之为”断链”的现象),链接文件甚至可热承堡体捆院以循环链接自地榜多己(类似于编程中的递归)。在想盛付对符号文件进淋茅行读或写操作的时候,系统会自巩悼翻档厚精洒动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅战颈删除链接文件,而不删除源文件本身。符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。一个符号链接文件仅包含有一个文本字符串,其被操作系统解释为一条指向另一个文件或者目录的路径。它是一个独立文件,其存在并不依赖于目标文件。如果删除一个符号链接,它指向的目标文件不受影响。如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件。这种情况被有时被称为被遗弃。
符号链接最早在4.2BSD版本中出现(1983年)。今天POSIX操作系统标准、大多数类Unix系统、Windows Vista、Windows 7都支持符号链接。Windows 2000与Windows XP在某种程度上也支持符号链接。
这样的存储方式被证明有些缓慢,并且在一些小型系统上会浪费磁盘空间。一种名为快速符号链接的新型存储方式能够将文本形式的链接存储在用于存放文件信息的磁盘上的标准数据结构之中(inode)。为了表示区别,原先的符号链接存储方式也被称作慢速符号链接。 [1]
系统一
Unix操作系统
在Unix下创建一个符号链接,可以在命令行提示符下输入以下命令:
ln -s target_filename symlink_filename将上述命令中的target_filename用符号链接将要指向的相对路径或者绝对路径进行替换。在通常的情况下,目标文件应该存在。但是也可以创建一个指向不存在目标的符号链接。将symlink_filename用希望的符号链接名替换。这条ln命令将会创建一条符号链接。当创建完符号链接之后,可以将symlink_filename当作target_filename的别名看待。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。
user@userbox:~/one$ cd two
user@userbox:~/one/two$ lsa b
user@userbox:~/one/two$ cd
user@userbox:~$ ln -s ~/one/two three
user@userbox:~$ cd three
user@userbox:~/three$ lsa b
user@userbox:~/three$ cd
user@userbox:~$ cat ./one/two/aa
user@userbox:~$ echo "c" > ./one/two/a
user@userbox:~$ cat ./three/ac
在Unix中,符号链接的创建使用与创建硬链接同样的命令,但是它们之间的实际行为差别很大。硬链接仅仅是一个与文件关联的名字,它不能离开关联文件而独立存在。当一个硬链接被移动、重命名或者删除时,其余关联到同一文件的硬链接不受影响。只有当最后一条指向该文件的硬链接被删除时,该文件内容将会消失。与硬链接不同,符号链接能够指向目录。 [1]
系统二
Mac OS操作系统
别名(Aliases)
系统三
Windows操作系统
Windows Vista/7的符号链接
mklink [/D | /H | /J] LinkName Target
/D 创建目录符号链接(默认为文件符号链接)
/H 创建硬链接
/J 创建符号连接
LinkName 链接名称
符号链接与快捷方式
快捷方式(shortcut)是一种功能上类似符号链接的文件对象,但与符号链接有本质的不同。快捷方式是普通的文件(拥有扩展名 .lnk),而非符号,因此,快捷方式可以被复制、移动、更改(某些特殊的快捷方式无法更改所有信息)或删除。快捷方式可以指向文件、文件夹或其他任何系统中合法的位置(包括控制面板、桌面等)。