文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

你会使用 unlink 删除文件吗?

2024-12-01 15:29

关注

在 Linux 中删除文件,我们通常使用 rm 命令。除此以外,还有另外一个命令,可以用于删除文件和链接,这就是 unlink 命令。虽然它听起来像是只能删除 Linux 系统中的链接,但实际上,也可以删除文件。

Linux 系统中删除文件的过程是非常迅速的,只是一瞬间。当你删除文件时,Linux 内核发现它对应于索引节点编号 X,系统会将其从目录列表中删除文件条目,并将索引节点 X 的链接计数减少1,这时候,索引节点 X 的链接计数为0,内核会认为没有人链接到此索引节点,所以就可以安全的删除索引节点,并删除与其关联的数据块。

现在我们来看一下如何使用 unlink 命令。

unlink 命令

如前文所述,unlink 命令用于删除文件和链接,其中链接包括软链接和硬链接。它是最简单的命令之一,除了 --help 以及 --version 以外,没有任何其他选项。

使用 unlink 删除文件,可以这样:

unlink filename

删除链接,可以这样使用:

unlink link_name

删除成功后,不会有任何输出:

这就是 unlink 命令的功能,除此以外不做任何其他事情。

unlink 不能同时删除多个文件和链接

rm 命令可以一次删除多个文件。但是 unlink 却不能,它一次只能删除一个文件或者链接,而且,也不能使用全局模式(globbing patterns)。

如果我们尝试给定多个文件的话,它会抛出一个错误,执行失败:

[gliu@fedora ~]$ unlink *.txt
unlink: extra operand ‘file2.txt’
Try 'unlink --help' for more information.

同时删除多个链接也会如此。

使用 unlink 不能删除目录

GNU 实现下的 unlink 命令是无法删除目录的,如果给定的文件名称是一个目录,就会报错:

[gliu@fedora ~]$ unlink new_dir
unlink: cannot unlink 'new_dir': Is a directory

rm 和 unlink 的区别

unlink 命令使用 unlink 系统命令,而 rm 命令使用 unlinkat 系统调用,两个系统调用几乎相同。但是这两个命令之间还是有一些明显的差异。

如前文所述,unlink 命令在同一时间只能删除一个文件或链接,而 rm 命令可以删除多个;unlink 命令不能删除目录,而 rm 命令能删除目录。

rm 命令在执行的时候,首先会安全检查,如果你没有文件的写权限,那么系统会要求你给出写权限(sudo或者切换至管理员用户),或者使用强制删除选项 -f;而 unlink 则不会进行安全检查,直接删除文件。

另外,与 rm 不同,unlink 没有其他选项。

在某些情况下,相比于 rm,你可能更喜欢使用 unlink。比如你希望强制删除一个文件,而不考虑安全或者权限问题;或者如果删除失败(比如文件不存在)的话你希望能看到报错信息,这种情况下就可以使用 unlink。因为使用 rm -f 强制删除文件,如果文件不存在的话,不会显示任何错误信息。

来源:良许Linux内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯