符号链接,也称为软链接或符号链接,在 Linux 中是一种特殊类型的文件,可用作另一个文件的快捷方式。
您可以使用 ln 命令创建软链接。 但是删除它们呢?
Linux中没有删除符号链接的特殊命令. 您可以使用 rm 命令,该命令也用于删除文件和目录。
rm symbolic_link_name
您也可以在这里取消链接命令。 不要直呼其名。 它不仅用于删除链接; 它还可以删除文件。
unlink symbolic_link_name
让我们详细看看。
使用 rm 命令删除符号链接
您所要做的就是给出命令链接的路径名称:
rm name_or_path_of_link
让我们看看它 example. 你能在 ls 命令的长列表输出中识别出软链接吗?
[email protected]:~/test$ 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
(用于链接),名称显示它指向的文件。
让我删除链接并验证它:
[email protected]:~/test$ rm mylink
[email protected]:~/test$ 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
?删除软链接不会删除它链接到的原始文件。
您可以验证原始文件是否仍然存在。
删除多个链接
您可以使用 rm 命令一次删除多个符号链接:
rm symlink1 symlink2 symlink3
使用 unlink 命令删除软链接
另一种删除软链接的方法是使用 unlink 命令。 听起来此命令仅用于删除链接,它也可以删除文件。
要使用取消链接删除链接,请像这样使用它。
unlink name_or_path_of_link
我会用同样的 example 我之前用过。
取消链接命令非常有限。 您不能使用它一次删除多个链接。
删除目录的软链接
您可以创建指向文件和目录的软链接。 虽然您必须使用 -r 选项删除目录,但指向目录的链接不需要它。
使用与删除文件链接相同的方式:
rm name_or_path_to_link_to_dir
不要在链接中使用斜杠,否则它会抱怨。
[email protected]:~/test$ rm link_to_dir/
rm: cannot remove 'link_to_dir/': Is a directory
这是一个 example 删除目录的软链接。

⚠️永远不要强行删除指向目录的链接 rm -f
因为它会删除目录的内容。

删除硬链接
与软链接不同,硬链接与原始文件几乎没有区别。 您只能通过 inode 编号注意到它。
你能识别输出中的硬链接和文件吗? 注意 inode 编号。
[email protected]:~/test$ 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 命令删除符号链接。 您已经熟悉它并使用此命令删除文件。 也将它用于链接。 要记住的命令少了一个。