如何删除硬链接?

haw*_*eye 33 delete

最近我创建了一个链接,内容如下:

sudo ln -n originalFileLocation
Run Code Online (Sandbox Code Playgroud)

如何删除硬链接?

Pra*_*eek 47

您可以rm像往常一样删除它:rm NameOfFile。请注意,对于硬链接,“原始文件”和“文件链接”之间没有区别:同一文件只有两个名称,仅删除其中一个名称不会删除另一个。

  • @RafałCieślak:错了。到一个 inode 的所有硬链接共享相同的访问权限,即 inode 的访问权限。要删除(即“取消链接”)文件的目录条目,您需要对该文件的 inode 和包含要删除的条目的目录具有写权限。因此,使用哪些权限来创建硬链接无关紧要。它们可能恰好(仍然)与创建时相同。 (4认同)
  • 还请注意,如果您使用您提供的命令(作为超级用户)创建它,则需要以 root 身份(使用 `sudo`)将其 rm。 (2认同)

Bun*_*nyk 8

实际上rm不起作用:

[user@localhost Products]$ rm AZP/
rm: cannot remove `AZP/': Is a directory
[user@localhost Products]$ rm -r AZP/
rm: cannot remove `AZP': Not a directory
Run Code Online (Sandbox Code Playgroud)

有效的是unlink AZP.

  • 禁止对目录进行硬链接。如果“AZP”是指向目录(或其他任何内容)的符号链接,“rm AZP/”将不起作用,因为“rm”认为它是一个目录(因为末尾有“/”)。然而“rm AZP”会工作得很好。-1 (5认同)
  • 您确定您的链接是硬链接吗?硬链接就像文件 iirc 一样。 (3认同)
  • `AZP/` 看起来像一个目录,rm 不会对没有递归标志的目录进行操作。还根据 coreutills 文档。>>> 大多数系统禁止建立到目录的硬链接;在允许的情况下,只有超级用户可以这样做(并且要小心,因为创建循环会给许多其他实用程序带来问题)。 (2认同)