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

UNIX 和 Linux 用户发现链接有很多用途,特别是符号链接。我喜欢使用符号链接的一种方式是管理各种 IT 设备的配置备份。我有一个目录结构,用来存放我的文档、更新及网络上其他和计算机和设备有关的文件。设备可以包括路由器、接入点、NAS 服务器和笔记本电脑,通常有不同的品牌和版本。配置备份本身可能在目录树的深处。
为了简化备份过程,我在主目录中有一个名为 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
...

另一个例子是,如果你的办公室里有几个接入点。你可以使用符号链接在逻辑上代表每一个,用一个通用的名字,如 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 -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 文件系统中最强大的功能之一。其他操作系统也曾试图模仿这种能力,但由于他们的文件系统缺乏基本的链接设计,这些系统从来没有工作得那么好,也没有那么可用。

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

如何更新 Linux 的符号链接相关推荐

  1. TFTP更新linux或android系统文件

    这里记录使用TFTP更新linux和android系统文件的方法(以zImage为例,适合大多数的开发板或者产品,本测试是基于RealARM210的开发板): 首先进入u-boot命令行界面,在操作前 ...

  2. linux内核5.8.1,Linus Torvalds宣布大规模更新Linux内核5.8

    原标题:Linus Torvalds宣布大规模更新Linux内核5.8 Linus Torvalds已使用第一个发行候选版本正式开始了Linux内核5.8的开发,最能形容这个新版本的单词是" ...

  3. 解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面

    解决Ubuntu自动更新Linux内核导致显卡驱动无法加载,致使循环在登录界面 关闭unattended-upgrade 在/etc/apt/apt.conf.d目录下,查找包含Unattended- ...

  4. 利用Yum自动更新Linux系统效劳器的措施

    - YUM (Yellow dog Updater, Modified) 用于自动衔接yum源,反省和更新软件包.安然修补法式,反省和更新Linux系统核心(如需求).   1.下载yum软件   需 ...

  5. linux用yum升级软件包,使用yum安装新软件包及更新linux系统

    问题 使用yum安装新软件包及更新linux系统 解决方案 Linux上常用的安装和升级工具主要有yum和apt 其中yum能更好的解决rpm的依存性问题,推荐使用yum 例如,要在服务器上安装lyn ...

  6. 百度发布 PaddlePaddle 新 API;微软更新 Linux 平台虚拟机 DSVM 等 | AI 开发者头条

    ▲内容预览 百度发布 PaddlePaddle 新 API,以及免费手册<使用 PaddlePaddle 进行深度学习> 微软更新 Linux 平台的数据科学虚拟机(DSVM) 谷歌发布机 ...

  7. linux检测到文件更新执行,一种更新Linux系统中文件的方法及操作方法专利_专利查询 - 天眼查...

    1. 一种更新Linux系统中文件的方法,其特征在于,包括在基于Linux系统的电视的主 程序中设计一个功能接口,该功能接口在电视系统检测到外部存储设备接入时被调用,所 述功能接口实现以下内容: A: ...

  8. update-rc.d 更新 Linux 系统启动项 命令 用法详解

    探究 Ubuntu 下的 update-rc.d 命令:http://www.linuxdiyf.com/linux/13362.html Update-rc.d && rc.loca ...

  9. 如何在Linux中符号链接文件? [关闭]

    我想在Linux中建立一个符号链接. 我已经编写了此Bash命令,其中第一个路径是我要链接到的文件夹,第二个路径是已编译的源代码. ln -s '+basebuild+'/IpDome-kernel/ ...

最新文章

  1. Java8自定义条件让集合分组
  2. Django博客系统(退出登录)
  3. 微信8年,你从中学到了什么?
  4. Mysql逻辑架构介绍
  5. Cortex - M3 中断和异常的区别
  6. js控制只能输入数字和小数点
  7. 性能测试总结(一)---基础理论篇(转载)
  8. Numpy——numpy的基本运算
  9. 透过用户思维谈程序员的进阶之路
  10. uso oracle,Oracle Database 12c: In-Memory (Parte I)
  11. 深度学习在内窥镜图像方面的研究:
  12. 【JSTL】choose标签
  13. 联想e570c固态接口支持协议_thinkpad e570c15.6英寸笔记本电脑支持什么固态硬盘接口...
  14. 计算机视觉方向就业怎么样?可以做什么?
  15. 如何让C语言黑窗口背景或者字体换个颜色呢?(背景和前景)
  16. python定义一个类savingaccount表示银行账户_创建一个SavingAccount类
  17. object...object和object[]...obj[]的区别
  18. LightOJ 1079 Just another Robbery
  19. LVM-HOWTO/学习笔记(五)
  20. 一个简单的2022春节倒计时

热门文章

  1. 27 个问题,告诉你 Python 为什么如此设计?
  2. 张一鸣:10年面试2000人,我发现混的好的人,全都有同一个特质!
  3. 爬虫之requests模块介绍
  4. celery的使用(最新详细解析)
  5. Javascrapy的window onload()函数用法
  6. 2005年下半年 网络工程师 上下午试卷【附带答案】
  7. 优化你的CPU来做深度学习
  8. OpenCV卡尔曼滤波介绍与代码演示
  9. 【Python基础】拯救你奇丑无比的Python代码的神器
  10. 自动驾驶制图中的深度学习