问题标签 [hardlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
945 浏览

filesystems - 用硬链接原子地替换文件到另一个文件

我有两个目录条目,a 和 b。之前,a 和 b 指向不同的 inode。之后,我希望 b 指向与 a 相同的 inode。我希望这是安全的——我的意思是如果我在某个地方失败了,b 要么指向它的原始 inode,要么指向 a inode。尤其是我不想以 b 消失而告终。

mv 在覆盖时是原子的。

当目的地已经存在时,ln 似乎不起作用。

所以看起来我可以说:

ln a tmp mv tmp b

如果发生故障,会留下一个“tmp”文件,这是不可取的,但不是灾难。

有一个更好的方法吗?

(我实际上想要做的是用包含该内容的单个 inode 替换具有相同内容的文件,在所有目录条目之间共享)

0 投票
2 回答
6679 浏览

unix - Unix中的硬链接和符号链接

我只是想澄清一个硬/符号链接是否实际上是一个创建的文件??

我运行了命令:

-- ls 命令将这 2 个链接显示为一个文件。

所以我的查询是,是否ln / ln -s真的创建了一个文件?

问候,darkie15

0 投票
3 回答
1319 浏览

windows - 删除文件链接而不清除只读位

我有一组包含多个链接的文件。

这些文件归 TFS 源代码控制所有,但对它们进行了其他链接。如何在不清除只读位的情况下删除其他链接。

可以安全地假设:

  • 这些文件有多个链接
  • 您没有删除 TFS 拥有的名称
  • 没有潜在的竞争条件
  • 您对文件拥有 ACL 完全控制权
  • 机器不会断电,你的程序也不会被杀死,除非它花费的时间太长。

假设是不安全的:

  • 设置了只读位(如果不是,请不要设置它)
  • 如果遇到错误并且最初设置了只读位,则可以将其保留为清除

不要迁移到超级用户——如果在那里迁移,答案是不可能的,因为没有标准工具可以做到这一点。

在一个假设的 *nix 系统上,需要对文件有写权限才能删除它,有一个涉及 fchmod() 的解决方案。然而,出现这种行为的系统是 Windows 系统。

0 投票
5 回答
14997 浏览

c# - 如何在 C# 中创建硬链接?

如何在 C# 中创建硬链接?请问有什么代码片段吗?

0 投票
2 回答
1706 浏览

winapi - 在没有 GetFileInformationByHandle() 的情况下获取 Windows 硬链接计数

有没有办法在不使用 GetFileInformationByHandle() 的情况下在 Windows 上获得文件硬链接计数?

MSDN 说:

根据操作系统的底层网络功能和连接的服务器类型,GetFileInformationByHandle 函数可能会失败,返回给定文件的部分信息或完整信息。

在实践中,检索网络共享上的链接计数,无论两端的 Windows 版本如何,总是返回 1。它工作的唯一情况是访问 samba 共享时。看起来他们忘记复制 Windows 错误/限制。此外,不告诉您它们是部分的“部分结果”对于 API 调用来说非常好。

0 投票
3 回答
4211 浏览

c++ - 如何以编程方式将硬链接与 Windows 7 中的真实文件区分开来?

我在文件大小和已用磁盘空间之间存在差异(总文件大小甚至大于磁盘大小)。我想是因为在 Windows 7/Vista 中存在许多硬链接(到 WinSxS 组件)。但是如何以编程方式将硬链接与 Windows 7 中的真实文件区分开来?

0 投票
4 回答
48630 浏览

linux - Git 和硬链接

考虑到 Git 无法识别指向存储库之外的符号链接,使用硬链接有什么问题吗?

Git可以破坏它们吗?你能指点我详细的信息吗?

0 投票
1 回答
1526 浏览

ntfs - 如何枚举指向文件的所有 NTFS 硬链接的路径?

我可以GetFileInformationByHandle用来确定与文件关联的硬链接的数量。如何枚举构成这些链接的路径?

例如,如果C:\TEMP_1.BINC:\TEMP_2.BIN是指向相同内容的硬链接,并且我从中GetFileInformationByHandle确定C:\TEMP_1.BINhas nNumberOfLinks=2,我如何才能发现其他链接的路径?(例如C:\TEMP_2.BIN

GetFileInformationByHandle:http: //msdn.microsoft.com/en-us/library/aa363788%28v=VS.85%29.aspx

0 投票
0 回答
438 浏览

c# - 如何将 CreateHardLink(string lpSymlinkFileName, string lpTargetFileName, IntPtr lpSecurityAttributes) 与目标的相对路径一起使用?

使用

我应该能够为 lpTargetFileName 使用相对路径吗?

它似乎对我不起作用。应该是?它适用于完整路径。

编辑:

这是 Windows 7 和/或 2008

0 投票
1 回答
222 浏览

emacs - emacs 不会破坏 hg 控制文件的硬链接

我有一组反复无常的克隆,我通过制作一个主存储库的克隆,然后使用 cp -rlp 制作它的副本来创建。我的期望是我可以独立使用它们,因为我使用带有默认设置的 emacs,所以它应该会破坏硬链接。但事实并非如此——当我修改一个文件时,所有硬链接的“副本”也会发生变化。ls -i 表明它们都是相同的 inode,正如预期的那样,并且它们的父目录不同。

“复制备份”为零。'make-backup-files' 是 t。

如果我创建一个示例文件,对其进行硬链接并对其进行编辑,emacs 会根据需要断开链接。

mercurial模式有什么东西可以颠覆这一点吗?(状态行显示“Hg:50503”,我知道我有某种反复无常的意识。虽然它不会显示为 Ctrl-H m 的次要模式。)