符号链接

✍ dations ◷ 2024-12-22 13:17:26 #文件系统

符号链接(软链接、Symbolic link)是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。 符号链接最早在4.2BSD版本中出现(1983年)。今天POSIX操作系统标准、大多数类Unix系统、Windows Vista、Windows 7都支持符号链接。Windows 2000与Windows XP在某种程度上也支持符号链接。

符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得像直接对目标文件进行操作。某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。

一个符号链接文件仅包含有一个文本字符串,其被操作系统解释为一条指向另一个文件或者目录的路径。它是一个独立文件,其存在并不依赖于目标文件。如果删除一个符号链接,它指向的目标文件不受影响。如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件。这种情况被有时被称为。

在Unix下创建一个符号链接,可以在命令行提示符下输入以下命令:

ln -s 目标 链接名称

将上述命令中的“目标”用符号链接将要指向的相对路径或者绝对路径进行替换。在通常的情况下,目标文件应该存在。但是也可以创建一个指向不存在目标的符号链接。将“链接名称”用希望的符号链接名替换。这条ln命令将会创建一条符号链接。当创建完符号链接之后,可以将“链接名称”当作“目标”的别名看待。普通的文件操作命令(如cp、rm等)都能直接作用于符号链接。用于读写文件内容的命令将会直接访问目标文件。

user@userbox:~/one$ cd twouser@userbox:~/one/two$ lsa  buser@userbox:~/one/two$ cd ../..user@userbox:~$ ln -s ~/one/two threeuser@userbox:~$ cd threeuser@userbox:~/three$ lsa  buser@userbox:~/three$ cd ..user@userbox:~$ cat ./one/two/aauser@userbox:~$ echo "c" > ./one/two/auser@userbox:~$ cat ./three/ac

在Unix中,符号链接的创建使用与创建硬链接同样的命令,但是它们之间的实际行为差别很大。硬链接仅仅是一个与文件关联的名字,它不能离开关联文件而独立存在。当一个硬链接被移动、重命名或者删除时,其余关联到同一文件的硬链接不受影响。只有当最后一条指向该文件的硬链接被删除时,该文件内容将会消失。与硬链接不同,符号链接能够指向目录。

早期符号链接的实现,采用直接分配磁盘空间来存储符号链接的信息,这种机制与普通文件一致。这种符号链接文件里包含有一个指向目标文件的文本形式的引用,以及一个指示自己为符号链接的标志。

这样的存储方式被证明有些缓慢,并且早一些小型系统上会浪费磁盘空间。一种名为快速符号链接的新型存储方式能够将文本形式的链接存储在用于存放文件信息的磁盘上的标准数据结构之中(inode)。为了表示区别,原先的符号链接存储方式也被称作慢速符号链接。

除开Unix系统下的普通符号链接之外,Mac OS还能使用别名(aliases)。当目标文件移动到同一磁盘上的其它地方时,别名仍然够继续有效。某些版本的Linux系统也有与别名类似的功能。

Windows Vista 的符号连接基于 NTFS 文件系统的重解析点功能,具体请参考 NTFS 的相关介绍。

Windows Vista 使用 mklink 命令(注意这是内部命令,而非可执行程序)创建符号连接,命令行如下:

mklink  LinkName Target/D          创建目录符号链接(默认为文件符号链接)/H          创建硬链接/J          创建目录连接LinkName    链接名称Target      链接的目标(根据命令行参数不同,可能为文件、目录或者加载点)

Windows 2000 和 Windows XP上可以使用junction工具创建类似的符号链接。

快捷方式(shortcut)是一种功能上类似符号链接的文件对象,但与符号链接有本质的不同。快捷方式是普通的文件(拥有扩展名 .lnk),而非符号,因此,快捷方式可以被复制、移动、更改(某些特殊的快捷方式无法更改所有信息)或删除。快捷方式可以指向文件、文件夹或其他任何系统中合法的位置(包括控制面板、桌面等)。

如果快捷方式指向可执行程序,则可以同时指定启动的命令行参数以及启动位置(对于非可执行程序的快捷方式也能指定这些信息,但无意义)。同时,可以为快捷方式单独选择图标(如果没有选择图标,则使用目标的图标),以方便用户个性化。

删除快捷方式完全不会影响被链接到的目标。如果删除了目标,则会使快捷方式失效。由于快捷方式可以使用相对路径或绝对路径,因此移动快捷方式或目标可能导致快捷方式失效,也可能不会有影响。在某些Windows操作系统(包括但不限于Windows XP、Windows Vista)中,操作系统会对文件路径的改变作一定程度的自动处理,使得快捷方式将在大多数情况下能保持有效:当快捷方式指向的目标失效而目标被移动过时,系统将自动修改快捷方式的目标到新的位置。

类似普通快捷方式,但只能指向文件夹并且对用户更为透明。文件夹快捷方式(Folder Shortcut)的实质为一个带有只读属性的普通文件夹,里面含有desktop.ini和target.lnk两个隐藏文件:target.lnk为指向目标文件夹的普通快捷方式;由desktop.ini定义该文件夹为“文件夹快捷方式”,其内容为:

CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}

文件夹快捷方式可以在 Windows 外壳中被创建和使用。同样,删除文件夹快捷方式不会影响被链接到的目标;删除目标则会使文件夹快捷方式失效。

相关

  • 蒙罗维亚蒙罗维亚(英语:Monrovia /mənˈroʊviə/)或译门罗维亚,是西部非洲利比里亚共和国的首都,同时也是利比里亚最大的城市。由于连年内战,导致该市市容破败。该市经济主要依赖其港口,
  • 唐 勇唐勇(1964年9月12日-),四川井研人。有机化学家。1986年毕业于四川师范大学化学系,1992年和1996年在中国科学院上海有机化学研究所分别获硕士学位和博士学位。1996年3月至1996年7
  • 自动调温器自动调温器(英语:Thermostat)也可以称为温度控制器,简称温控器,这个设备可以用来控制系统提供的温度,使得系统温度一直保持在用户所想要温度点附近,因为控制的温度不可能精确地一直
  • 咖啡代用品咖啡代用品是指非咖啡,但因为外观、口味类似咖啡,因此用来代替咖啡的产品,多半也不含咖啡因。咖啡代用品的使用可能是因为医药上、经济上或是信仰上的原因,也有可能只是因为无法
  • 一氯化碘一氯化碘(分子式:ICl)是一种互卤化物,为一种红棕色的化合物,其熔点接近室温。因为碘与氯电负度的差异,一氯化碘的极性很高,可当作是I+的来源。制备一氯化碘的方式,是直接将两种卤素
  • 吠陀支吠陀支(梵语:vedāṅga)即所谓吠陀的“六支”。婆罗门教的一大类文献,被认为是吠陀的补充说明,多半以歌诀式的“经”体写成。有人认为,这些文献实际并不属于吠陀,而只是对当时的一
  • 金鲜一金鲜一(朝鲜语:김선일/金鮮一 Kim Sun-il,一些中文媒体错误译作“金善日”;1970年9月13日-2004年6月22日),韩国公民,在为美军提供服务的韩国公司中担任英语翻译,他在伊拉克遭到武装分
  • 中山大学管理学院中山大学管理学院成立于1985年,,是中山大学的三个经管类学院之一(另两个为中山大学岭南(大学)学院和中山大学国际商学院)。 该院是国内通过AACSB、EQUIS、AMBA三大认证的商学院之
  • 赵小锐赵小锐(1956年7月28日-),中国男演员,1978年考入中国青年艺术剧院作为话剧演员,因出演《水浒传》的李逵为观众熟知。代表作电影《少林俗家弟子》、《一个和八个》的大秃子、电视剧
  • 阿拉伯豹阿拉伯豹(学名:Panthera pardus nimr)是一种猫科食肉动物,为豹的一个亚种,是体型最小的一个豹的亚种。数量稀少,目前仅存于阿拉伯半岛南部的纳杰夫沙漠和沙特阿拉伯、阿曼和也门三