当前位置: 首页 > news >正文

运维 | 如何在 Linux 系统中删除软链接 | Linux

运维 | 如何在 Linux 系统中删除软链接 | Linux

介绍

在 Linux 中,符号链接(symbolic link,或者symlink)也称为软链接,是一种特殊类型的文件,用作指向另一个文件的快捷方式。

使用方法

我们可以使用 ln 命令来创建软连接,那么怎样删除呢?

Linux 中没有用于删除符号链接的特殊命令,不过可以使用 rm 命令,该命令主要用于删除文件和目录,如下:

$ rm [file|dir]

当然也可以使用 unlink 命令,但是不要直接使用软链接的名称,因为它不仅仅用于删除链接,还会删除文件。

$ unlink [file]

注意
unlink 命令只能删除文件,而不能删除目录

下面我们来详细看一下。

  • 使用 ln 命令创建符号链接
ln <-s|-f> [symlink_origin_file|symlink_origin_dir] [symlink_target_file|symlink_target_dir]
  • 使用 rm 命令删除符号链接

在 rm 命令后面提供链接路径的名称:

$ rm [symlink_file|symlink_dir]

我们来看个具体例子,如下命令中列出当前路径中的文件:

$ ls -l

参考示例

上述列表中 my_link.txt 为符号链接,大家可以看到其是以 l (表示链接)开头,名称显示它指向的文件。

我们使用 rm 删除它,并验证:

$ rm my_link.txt
$ ls -l

参考示例

如下图所示,以这种方式删除软链接,但源文件仍然存在:

  • 删除多个链接

可以使用 rm 命令一次删除多个符号链接:

$ rm [symlink1 symlink2 ... symlink3]
  • 使用 unlink 命令删除软链接

删除软链接的另一种方法是使用 unlink 命令。这个命令听起来好像只用于删除链接,但其实它也可以删除文件。使用方式如下:

$ unlink [symlink_file|symlink_dir]

我们使用上面的例子,如下图所示:

注意
unlink 命令不能一次删除多个链接。

  • 删除指向目录的软链接

我们可以创建指向文件的软连接,也可以创建指向目录的软链接。删除目录需要使用 -r 选项,但是删除指向目录的链接却不需要使用 -r 选项。

使用方法与删除文件链接的方法相同:

$ rm [symlink_file|symlink_dir]

删除指向目录的软连接的时候,在目录的末尾不要添加斜杠,否则会报错:

$ rm [symlink_dir/]rm: 无法删除"symlink_dir/": 是一个目录

下图是一个删除目录软链接的示例:

注意
尽量不要使用 -f 选项强制删除指向目录的链接,因为它会删除目录的内容。

  • 删除硬链接

与软链接不同,硬链接与原始文件几乎无法区分,你只能通过 inode number 注意到它。

看下面的例子:

$ ls -litotal 4716544057 -rw-rw-r-- 1 root staff 4794657 Sep 27 20:36 my_hard_link.txt

删除硬链接与删除文件相同:

rm [symlink_file|symlink_dir]
  • 同时删除链接文件和源文件

实际上,几乎没有在删除软链接的同时,也要删除原始文件的场景和需求。当然,如果有的话,你可以通过符号链接找到原始文件,然后删除它。

rm "$(readlink '/path/to/symlink')" /path/to/symlink

注意
如果删除源文件,但是没有删除软链接,那么这个链接将会成为断开的或悬空的链接。

总结

虽然存在 unlink 命令,但是我建议使用 rm 命令来删除符号链接。因为这个是我们都比较熟悉的命令,经常使用它来删除文件,当然也可以用来删除符号链接。

http://www.lryc.cn/news/195386.html

相关文章:

  • Jmeter接口测试:jmeter导入和导出接口的处理
  • 一文了解 Go fmt 标准库的常用占位符及其简单使用
  • Linux命令(94)之history
  • Prompt 驱动架构设计:探索复杂 AIGC 应用的设计之道?
  • 【代码随想录】算法训练营 第三天 第二章 链表 Part 1
  • winform开发经验(1)——调用Invoke更新UI时程序卡死原因以及解决办法
  • JNI 的数据类型以及和Java层之间的数据转换
  • EFLK与logstash过滤
  • docker jenkins
  • 单例模式之「双重校验锁」
  • 2023年中国商业版服务器操作系统市场发展规模分析:未来将保持稳定增长[图]
  • BIM如何通过3D开发工具HOOPS实现WEB轻量化?
  • Unity 3D基础——通过四元数控制对象旋转
  • python--短路运算,把0、空字符串和None看成 False,其他数值和非空字符串都看成 True
  • 《算法通关村第一关——链表青铜挑战笔记》
  • 【深度学习实验】循环神经网络(四):基于 LSTM 的语言模型训练
  • IOS课程笔记[1-3] 第一个IOS应用
  • Flink的基于两阶段提交协议的事务数据汇实现
  • 树模型(三)决策树
  • vueday01——使用属性绑定+ref属性定位获取id
  • LeetCode 260. 只出现一次的数字 III:异或
  • 使用PyTorch解决多分类问题:构建、训练和评估深度学习模型
  • 基于nodejs+vue网课学习平台
  • 读书笔记:Effective C++ 2.0 版,条款13(初始化顺序==声明顺序)、条款14(基类有虚析构)
  • flutter开发实战-下拉刷新与上拉加载更多实现
  • 旧手机热点机改造成服务器方案
  • 网工实验笔记:策略路由PBR的应用场景
  • webrtc快速入门——使用 WebRTC 拍摄静止的照片
  • 预约按摩app软件开发定制足浴SPA上们服务小程序
  • jenkins出错与恢复