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


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

    介绍

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

    使用方法

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

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

    $ rm [file|dir]
    
    • 1

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

    $ unlink [file]
    
    • 1

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

    下面我们来详细看一下。

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

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

    $ rm [symlink_file|symlink_dir]
    
    • 1

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

    $ ls -l
    
    • 1

    参考示例

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

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

    $ rm my_link.txt
    $ ls -l
    
    • 1
    • 2

    参考示例

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

    • 删除多个链接

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

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

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

    $ unlink [symlink_file|symlink_dir]
    
    • 1

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

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

    • 删除指向目录的软链接

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

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

    $ rm [symlink_file|symlink_dir]
    
    • 1

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

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

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

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

    • 删除硬链接

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

    看下面的例子:

    $ ls -li
    
    total 4716
     544057 -rw-rw-r-- 1 root staff 4794657 Sep 27 20:36 my_hard_link.txt
    
    • 1
    • 2
    • 3
    • 4

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

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

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

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

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

    总结

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

  • 相关阅读:
    如何使用pid
    【leetcode】【2022/8/25】658. 找到 K 个最接近的元素
    用url类来访问服务器上的文件
    Springboot开关柜综合监测信息查询系统毕业设计-附源码191550
    centos8 编译安装 httpd-2.4
    时间序列分析基础篇
    wordpress 付费主题modown分享,可实现资源付费
    高效复用:RecyclerView内部嵌套横向列表时的优化技巧
    Python毕业设计源代码竞赛比赛平台
    Golang入门笔记(3)—— 运算符
  • 原文地址:https://blog.csdn.net/weixin_39122254/article/details/133875290