UNIX和Linux用户发现链接有很多用途,尤其是符号链接。我喜欢使用符号链接的一种方式是管理各种IT设备的配置备份。我的文档、更新和其他与网络上的计算机和设备相关的文件有一个目录结构。设备可以包括路由器、接入点、NAS服务器和笔记本电脑,它们通常具有不同的品牌和版本。配置备份本身可能在目录树的深处,比如/home/alan/Documents/network/device/NetgearRL5000/config。为了简化备份过程,我的主目录中有一个名为Configuration的目录。我使用指向该目录的符号链接来指向特定的设备目录::~/Configuration/$ls-F1Router@Accesspoint@NAS@注意:ls命令的-F选项将特殊字符附加到每个文件名以指示其类型。如上所示,@符号表示这些是链接。创建链接符号链接路由器以指向我的NetgearRL5000的配置目录。创建它的命令是ln-s:$ln-s/home/alan/Documents/network/device/NetgearRL5000/configRouter然后用ls-l查看确认::~/Configuration/$ls-lRouter->/home/alan/Documents/network/device/NetgearRL5000/configNAS->/home/alan/Documents/network/device/NFSBox/config...这样的好处是在对这个设备进行维护时,我只需要输入?/配置/路由器。如果我决定用更新的型号替换此路由器,使用符号链接的第二个好处就会变得显而易见。我可能会将旧路由器转换为接入点。因此,它的目录没有被删除。相反,我有一个对应于新路由器的新目录,可能是AsusDF-3760。我创建了这个目录并确认了它的存在:$mkdir-p~/Documents/network/device/ASUSDF-3760/config:~/Documents/network/device/$lsNetgearRL5000ASUSDF-3760NFSBox...另一个例子是如果你有几个办公室的接入点。您可以使用符号链接在逻辑上表示每一个,使用通用名称,如ap1、ap2等,或者您可以使用描述性词,如ap_floor2、ap_floor3等。这样,随着物理设备随时间变化,您不必继续更新可能管理它们的任何进程,因为它们处理的是链接而不是实际的设备目录。更新链接因为我的主路由器已经改变,我想让路由器的符号链接指向它的目录。我可以使用rm和ln命令来删除和创建一个新的符号链接,但有一种方法只需使用ln命令和几个选项即可一步完成:~/Configuration/$ln-vfns~/Documents/network/device/ASUSDF-3760/config/Router'Router'->'/home/alan/Documents/network/device/ASUSDF-3760/config/':~/Configuration/$ls-lRouter->/home/alan/Documents/network/device/ASUSDF-3760/configNAS->/home/alan/Documents/network/device/NFSBox/config根据manpage,这些选项如下:-v,--verbose:printthenameofeachlinkedfile-f,--force:删除目标文件(必要,因为链接已经存在)-n,--no-dereference:如果链接名是指向目录的符号链接,则将其视为普通文件-s,--symbolic:创建符号链接而不是硬链接总结链接是UNIX和Linux文件系统最强大的功能之一。其他操作系统曾尝试模仿此功能,但由于其文件系统中缺乏基本的链接设计,这些系统从未像现在这样工作,也没有那么好用。上面的演示只是使用链接在实时生产环境中通过不断变化的目录结构进行无缝导航的众多可能性之一。链接为永不静止的组织提供了所需的灵活性。
