OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

符号链接

当我们环顾四周时,我们可能会看到一个目录列表,其中包含如下条目:



lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so

lrwxrwxrwx 1 root root 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so


请注意列表的第一个字母是“l”并且条目似乎有两个文件名? 这是一种特殊的文件,称为 象征性的联系 (也称为 软链接 or 符号链接)。 在大多数类 Unix 系统中,一个文件可能被多个名称引用。 虽然它的价值可能并不明显,但它确实是一个有用的功能。

想象一下这个场景:一个程序需要使用包含在名为“foo”的文件中的某种共享资源,但“foo”的版本变化频繁。 最好在文件名中包含版本号,以便管理员或其他相关方可以查看安装的“foo”版本。 这提出了一个问题。 如果我们更改共享资源的名称,我们必须追踪可能使用它的每个程序,并在每次安装新版本的资源时更改它以查找新的资源名称。 这听起来一点都不好玩。

这是符号链接节省一天的地方。 假设我们安装了“foo”的 2.6 版本,它的文件名为“foo-2.6”,然后创建一个符号链接,简称为“foo”,指向“foo-2.6”。 这意味着当程序打开文件“foo”时,它实际上是打开文件“foo-2.6”。 现在大家都很开心。 依赖“foo”的程序可以找到它,我们仍然可以看到实际安装的版本。 当需要升级到“foo-2.7”时,我们只需将文件添加到我们的系统中,删除符号链接“foo”并创建一个指向新版本的新链接。 这不仅解决了版本升级的问题,而且还允许我们在我们的机器上保留两个版本。 想象一下“foo-2.7”有一个错误(该死的那些开发人员!),我们需要恢复到旧版本。


同样,我们只是删除指向新版本的符号链接并创建一个指向旧版本的新符号链接。

上面的目录列表(来自 / lib目录 Fedora 系统的目录)显示了一个名为“libc.so.6”的符号链接,它指向一个名为“libc-2.6.so”的共享库文件。 这意味着寻找“libc.so.6”的程序实际上会得到文件“libc-2.6.so”。 我们将在下一章学习如何创建符号链接。


OnWorks 的顶级操作系统云计算: