如何更新 Linux 的符号链接

链接一直是 UNIX 文件系统的一个独特的高级功能。

UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接的一种方式是管理各种 IT 设备的配置备份。

我有一个目录结构,用来存放我的文档、更新及网络上其他和计算机和设备有关的文件。设备可以包括路由器、接入点、NAS 服务器和笔记本电脑,通常有不同的品牌和版本。配置备份本身可能在目录树的深处,例如
   /home/alan/Documents/network/device/NetgearRL5000/config

为了简化备份过程,我在主目录中有一个名为 Configuration的目录。我使用这个目录的符号链接来指向特定的设备目录:

:~/Configuration/ $ ls -F1
Router@
Accesspoint@
NAS@

注意ls命令的-F选项在每个文件名上附加特殊字符以表示其类型。如上所示,@符号表示这些是链接。

创建一个链接

符号链接 Router指向我的 Netgear RL5000 的config目录。创建它的命令是ln -s

$ ln -s /home/alan/Documents/network/device/NetgearRL5000/config Router

然后,用 ls -l看一下并确认:

:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/NetgearRL5000/config
NAS -> /home/alan/Documents/network/device/NFSBox/config
...

这样做的好处是,当对这个设备进行维护时,我只需进入 ~/Configuration/Router

如果我决定用一个新的型号替换这个路由器,使用符号链接的第二个好处就很明显了。我可能会把旧的路由器改成一个接入点。因此,它的目录并没有被删除。相反,我有一个新的目录,对应于新的路由器,也许是华硕 DF-3760。我创建这个目录并确认它的存在:

$ mkdir -p ~/Documents/network/device/ASUSDF-3760/config
:~/Documents/network/device/ $ ls
NetgearRL5000
ASUSDF-3760
NFSBox
...

另一个例子是,如果你的办公室里有几个接入点。你可以使用符号链接在逻辑上代表每一个,用一个通用的名字,如 ap1ap2,等等,或者你可以使用描述性的词语,如ap_floor2ap_floor3,等等。这样,当物理设备随时间变化时,你不必持续更新任何可能管理它们的进程,因为它们是在处理链接而不是实际的设备目录。

更新一个链接

由于我的主路由器已经改变,我想让路由器的符号链接指向它的目录。我可以使用 rmln命令来删除和创建一个新的符号链接,但是有一种方法可以只用ln命令和几个选项就可以一步完成:

:~/Configuration/ $ ln -vfns ~/Documents/network/device/ASUSDF-3760/config/ Router
'Router' -> '/home/alan/Documents/network/device/ASUSDF-3760/config/'
:~/Configuration/ $ ls -l
Router -> /home/alan/Documents/network/device/ASUSDF-3760/config
NAS -> /home/alan/Documents/network/device/NFSBox/config

根据手册页,这些选项如下:

  • -v--verbose:打印每个链接文件的名称
  • -f--force:删除目标文件(有必要,因为已经存在一个链接)
  • -n--no-dereference:如果链接名是一个目录的符号链接,就把它当作一个正常的文件
  • -s--symbolic:制作符号链接而不是硬链接

总结

链接是 UNIX 和 Linux 文件系统中最强大的功能之一。其他操作系统也曾试图模仿这种能力,但由于他们的文件系统缺乏基本的链接设计,这些系统从来没有工作得那么好,也没有那么可用。

上面的演示只是利用链接在生活生产环境中无缝浏览不断变化的目录结构的众多可能性中的一种。链接提供了一个永远不会长期静态的组织所需的灵活性。

via: https://opensource.com/article/21/11/update-linux-file-system-link

作者:Alan Formy-Duval选题:lujun9972译者:geekpi校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

(0)

相关推荐

  • 据Ubuntu开发人员的邮件显示 Ubuntu 14.10将使用更新Linux内核3.16.4

    Linux发行版本之一Ubuntu 14.10幸运地赶上了Linux内核更新,新内核版本号为3.16.4。 根据Ubuntu开发人员的邮件显示,10月9日是14.10内核的冻结日期,那就意味着Linu ...

  • Ubuntu 14.10何时使用更新Linux内核3.16.4

    Linux发行版本之一Ubuntu 14.10幸运地赶上了Linux内核更新,新内核版本号为3.16.4。 根据Ubuntu开发人员的邮件显示,10月9日是14.10内核的冻结日期,那就意味着Linu ...

  • 详解CentOS中更新系统而不更新Linux内核的方法

    今天在使用Ucloud的云服务器的时候,手贱使用了一下 复制代码 代码如下: yum upgrade -y 然后重启以后我的机器就连不上了. 与客服人员交流后发现是更新的时候不能更新内核. 其实方法也 ...

  • linux创建符号链接的方法(硬链接和符号链接)

    硬链接(hard links): 为文件创建了额外的条目.使用时, 与文件没有区别; 删除时, 只会删除链接, 不会删除文件; 硬链接的局限性: 1. 不能引用自身文件系统以外的文件, 即不能引用其他 ...

  • CentOS7用户需更新:Linux Kernel补丁发布

    基于Red Hat Enterprise Linux 7的自由发布源,CentOS 7分支继承了始终能获得最新内核安全更新的特性.今天,系统团队发布了一个非常重要的补丁,对近期发现的4个漏洞进行了及时 ...

  • linux vps如何修改时区 linux vps时区设置

    因为国外VPS所处的服务器主板大部分采用美国时间,所以VPS上安装的Linux显示的默认时间可能是美国时区时间。如果需要VPS显示中国时区并对时,可以采取下列方法。 根据NTP网络对时 Java代码 ...

  • linux vps如何修改时区 linux vps时区设置的方法

    根据NTP网络对时 Java代码 代码如下: #date -R 2012年11月18日 星期日 19时33分23秒 CSTLinux系统下使用网络对时的工具是ntpdate,如果没有安装ntpdate ...

  • 使用sysstat查看Linux的系统性能的方法

    Sysstat是一个非常方便的工具,它带有众多的系统资源监控工具,用于监控系统的性能和使用情况.我们在日常使用的工具中有相当一部分是来自sysstat工具包的.同时,它还提供了一种使用cron表达式来 ...

  • Win10 RS5快速预览版17666更新了哪些内容? 预览版17666更新内容汇总

    今天微软推送了win0 RS5快速预览版17666系统更新,这个版本更新了哪些内容?本次更新包含了大量内容,包括了全新的暗黑文件管理器.流动设计标题栏.全新的剪贴板.全新的记事本等等,下面我们就来看看 ...

  • Linux中svn提交文件后自动同步更新到网站目录

    下面来为各位介绍Linux中svn提交文件后自动同步更新到网站目录希望文章对各位有帮助. 有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动 ...