如何更新 Linux 的符号链接
创始人
2024-03-02 08:57:37
0

链接一直是 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中国 荣誉推出

相关内容

搜狐AI健康 | 真人医生...
图说 / 蚂蚁旗下健康AI产品蚂蚁阿福近期正式推出“医生把关”功能...
2026-06-24 09:57:21
被AI推荐来的客户问我:为...
01 前不久,我在北京讲课,遇到一位新学员,他专门来问我:“老师你...
2025-06-17 09:43:51
解决win10任何程序打开...
文章目录一、问题与修改原因1、着手修改吧2、弯路上探索3、发现祸根...
2025-05-31 06:59:12
进阶C语言 第七章----...
绪论         书接上回,在上章我们学习完了文...
2025-05-30 14:44:00
SLAM | 激光SLAM...
=================================...
2025-05-29 06:40:46
在 Linux/Unix ...
在 Linux/Unix 系统中,动态库(.so 文件)的搜索路径...
2025-05-21 10:17:25

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...