加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux 系统中如何删除软连接

发布时间:2022-12-10 11:01:25 所属栏目:Linux 来源:
导读:  在Linux中,符号链接(symbolic link,或者symlink)也称为软链接,是一种特殊类型的文件,用作指向另一个文件的快捷方式。

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

  Linux 中没有用于
  在Linux中,符号链接(symbolic link,或者symlink)也称为软链接,是一种特殊类型的文件,用作指向另一个文件的快捷方式。
 
  我们可以使用ln命令来创建软连接,那么怎样删除呢?
 
  Linux 中没有用于删除符号链接的特殊命令linux软链接,不过可以使用rm命令,该命令主要用于删除文件和目录,如下:
 
  rm symbolic_link_name
  当然也可以使用unlink命令,但是不要直接使用软链接的名称,因为它不仅仅用于删除链接,还会删除文件。
 
  unlink symbolic_link_name
  下面我们来详细看一下。
 
  使用 rm 命令删除符号链接
 
  在 rm 命令后面提供链接路径的名称:
 
  rm name_or_path_of_link
  我们来看个具体例子,如下命令中列出当前路径中的文件:
 
  $ ls -l
  total 4708
  -rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
  -rw-rw-r-- 1 abhishek abhishek     311 Sep 22 12:19 line.txt
  lrwxrwxrwx 1 abhishek abhishek      26 Oct 17 11:24 mylink -> ./Documents/sample-mark.md
  -rw-rw-r-- 1 abhishek abhishek     106 Sep 27 20:39 redirects.json
  -rw-r--r-- 1 abhishek abhishek   12817 Sep 22 12:28 sample.txt
  上述列表中 mylink 为符号链接,大家可以看到其是以l(表示链接)开头,名称显示它指向的文件。
 
  我们使用rm删除它,并验证:
 
  $ rm mylink
  $ ls -l
  total 4708
  -rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
  -rw-rw-r-- 1 abhishek abhishek     311 Sep 22 12:19 line.txt
  -rw-rw-r-- 1 abhishek abhishek     106 Sep 27 20:39 redirects.json
  -rw-r--r-- 1 abhishek abhishek   12817 Sep 22 12:28 sample.txt
  源文件仍然存在:
 
  删除多个链接
 
  可以使用rm命令一次删除多个符号链接:
 
  rm symlink1 symlink2 symlink3
  使用 unlink 命令删除软链接删除软链接的另一种方法是使用unlink命令。这个命令乍听起来好像只用于删除链接,但其实它也可以删除文件。使用方式如下:
 
  unlink name_or_path_of_link
  我们使用上面的例子,
 
  unlink 不能一次删除多个链接。
 
  删除指向目录的软链接
 
  我们可以创建指向文件的软连接,也可以创建指向目录的软链接。删除目录需要使用-r选项,但是删除指向目录的链接却不需要使用-r选项。
 
  使用方法与删除文件链接的方法相同:
 
  rm name_or_path_to_link_to_dir
  删除指向目录的软连接的时候,在目录的末尾不要添加斜杠,否则会报错:
 
  $ rm link_to_dir/
  rm: cannot remove 'link_to_dir/': Is a directory
  下图是一个删除目录软链接的示例:
 
  注意,尽量不要使用-f选项强制删除指向目录的链接,因为它会删除目录的内容。

  删除硬链接
 
  与软链接不同,硬链接与原始文件几乎无法区分,你只能通过 inode number 注意到它。
 
  看下面的例子:
 
  $ ls -li
  total 4716
   544057 -rw-rw-r-- 1 abhishek abhishek 4794657 Sep 27 20:36 export.json
   544884 -rw-rw-r-- 2 abhishek abhishek     311 Sep 22 12:19 hard_link
   544884 -rw-rw-r-- 2 abhishek abhishek     311 Sep 22 12:19 line.txt
  1181365 drwxrwxr-x 2 abhishek abhishek    4096 Oct 17 12:33 my_dir
   546419 -rw-rw-r-- 1 abhishek abhishek     106 Sep 27 20:39 redirects.json
  删除硬链接与删除文件相同:
 
  rm path_or_name_of_hard_link
  删除链接文件会怎样呢?实际上,几乎没有在删除软链接的同时,也要删除原始文件的场景和需求。当然,如果有的话,你可以通过符号链接找到原始文件,然后删除它。
 
  rm "$(readlink '/path/to/link')" /path/to/link
  注意,如果删除源文件,但是没有删除软链接,那么这个链接将会成为断开的或悬空的链接。
 
  虽然存在 unlink 命令,但是我建议使用 rm 命令来删除符号链接。因为这个是我们都比较熟悉的命令,经常使用它来删除文件,当然也可以用来删除符号链接。
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!