Linux 中的取消链接命令Linux 中的取消链接命令Linux 中的取消链接命令Linux 中的取消链接命令
  • 业务
  • 目标
  • 支持
  • 关于
  • 联系我们
  • 登录
✕

Linux 中的取消链接命令

发表 admin at 2025年2月28日
类别
未分类
标签

了解 unlink 命令,这是在 Linux 终端中删除文件的另一种方法。

如何在Linux终端中删除文件?您使用 rm 命令。

人们通常就是这样做的。但在 Linux 中可以使用另一个命令来删除文件和链接。

该命令称为 unlink,虽然听起来像是只在 Linux 中删除链接,但它也可以删除文件。

毕竟Linux中的删除过程基本上就是取消链接。当你删除一个文件时,Linux内核发现它对应于索引节点号X。它会从其目录列表中删除该文件条目,并将索引节点X的链接计数减1。现在索引节点X的链接计数为0,内核知道没有人链接到该 inode,因此可以安全地删除该 inode 并删除与其关联的数据块。

让我们看看如何使用 unlink 命令。

取消链接命令

unlink 命令用于删除文件和链接。您可以使用它来删除软链接和硬链接。

它是最简单的命令之一,除了 --help 和 --version 之外没有其他选项。

要删除带有取消链接的文件,请像这样使用它:

unlink filename

要删除链接:

unlink link_name

成功删除文件或链接后,您将看不到任何输出。

基本上,unlink 命令就是这样。它不能做任何其他事情。

您无法一次删除多个文件或链接

rm 命令可以一次删除多个文件,而 unlink 一次只能删除一个文件。您不能同时向其提供多个文件。您也不能使用通配模式。

如果您尝试类似的操作,它会抛出错误并且不会删除任何文件。

abhishek@LHB:~/test$ unlink *.txt
unlink: extra operand ‘file2.txt’
Try 'unlink --help' for more information.

一次删除多个链接也是如此。

您无法使用 unlink 删除目录

unlink 命令的 GNU 实现无法删除目录。如果您尝试删除文件夹,它会引发错误。

abhishek@LHB:~$ unlink new_dir
unlink: cannot unlink 'new_dir': Is a directory

rm 和 unlink 命令之间的区别

unlink 命令使用 unlink 系统命令,而 rm 命令使用 unlinkat 系统调用。两个系统调用几乎相同。

这两个命令之间有一些明显的差异,您已经可以看到。

unlink 命令一次仅处理一个文件或链接。 rm 命令可以一次处理多个。

rm 命令可以使用递归选项删除目录。 unlink 命令无法删除目录。

rm 命令执行安全检查。如果您没有文件的写入权限,它会要求您以交互方式确认它或使用强制选项-f。使用取消链接时,没有安全检查。它将删除写保护的文件。

与 rm 命令不同,Unlink 没有附加功能或选项。

在某些用例中,您可能更喜欢使用 unlink 命令而不是 rm。想象一下,您想要“强制删除”一个文件,而不考虑写保护,但如果该文件不存在,您希望脚本失败。如果文件不存在, rm -f 将不会显示任何错误,但取消链接将引发错误。

©2015-2025 Norria support@norria.com