问题标签 [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 回答
279 浏览

linux - Linux中的硬链接

hardlinkin的尺寸是Linux多少?会是大小inode吗?如果我有两个?

提前感谢您的任何解释,我尝试了google它,但没有找到任何东西

0 投票
0 回答
1240 浏览

c++ - CreateHardLink 和 CreateSymbolicLink Win32 函数

我正在完成一个为备份测试创建虚拟文件系统的项目,并且需要开发一种在结构中创建硬链接和软链接的方法。

windows.h 中的 CreateHardLink 和 CreateSymbolicLink 函数接收基于当前工作目录的文件位置和名称。

源代码现在更改目录,但这两个函数没有成功执行。

其中 hltarg 将现有文件名连接到 sym 的末尾。

因为我将工作目录移动到了目标目录,所以这些字符串都不包含完整路径,而只包含目标文件名。

关于采取不同路线而不是更改当前目录的任何建议?

该应用程序需要是可移植的,因此不能对文件路径进行硬引用,尽管将提供所需的文件路径。

0 投票
1 回答
386 浏览

wix - 如何在 WiX 中创建硬链接

是否可以在不创建自定义操作的情况下在 WiX 中创建硬链接?我发现this thread描述了这个问题,但它没有提供答案。想要创建硬链接的原因是我有四个不同的应用程序共享相同的先决条件,这些应用程序占用了服务器上的所有可用空间。以某种方式分享它们会很好。

我正在使用 WiX 3.0

0 投票
1 回答
715 浏览

linux - MEM_SHARED、mmap 和硬链接

只是想知道共享内存的关键是文件名还是 inode。

我有一个名为 .last 的文件,它只是指向名为 YYYYMMDDHHMMSS 的文件的硬链接。

一个目录如下所示:

.last 只是到 20110101143000 的硬链接。

一段时间后,创建了一个新文件

然后我们删除 .last,并重新创建它以引用新文件。

我们的软件在这些更新期间持续运行,使用 MAP_SHARED 映射 .last 文件。处理完文件后,软件可能会将其缓存几分钟而不是取消映射。在一台物理服务器上,有 12-24 个软件实例同时运行。不同的实例通常几乎同时映射同一个文件。我的问题是:

linux 是使用文件名作为共享内存的键,还是使用 inode?

鉴于这种情况:

  1. proc A mmaps .last,并且不会取消映射
  2. 写入一个新文件,删除 .last,创建一个新的 .last 以链接新文件
  3. proc B 映射新的.last,并且不取消映射

如果 linux 使用 inode,那么 proc A 和 B 将看到不同的内存块映射到不同的文件,这正是我们想要的。如果 linux 使用文件名,那么 A 和 B 都会看到映射到新文件的同一块内存。B 很好,但是当分片块中的内存发生变化时,A 会崩溃。

有人知道它实际上是如何工作的吗?我要测试,但如果它是基于名称的,除非有人知道技巧,否则我会被搞砸。

谢谢!

0 投票
2 回答
1069 浏览

windows - 以编程方式复制文件夹而不解析 Windows 中的硬链接(Win32 API)

我想复制整个文件夹而不解析硬链接

例子:

fsutil hardlink create(使用或创建的 HardLink3 mklink

我想将此文件夹复制到

保持 Folder2\HardLink3 作为指向 File3 的硬链接

是否有 Win32 API 调用来复制具有此语义的整个文件夹,或者,如果我需要逐个文件执行 CopyFile / CreateHardLink 文件,那么检查给定文件是否为硬链接的 API 调用是什么?

0 投票
1 回答
145 浏览

windows - 隐形硬链接

我有一个小应用程序,它显示一个日志文件的内容,为了可读性而进行了一些变形。由于日志文件偶尔会被重写并且 Windows 文件系统语义禁止删除打开的文件,因此我创建了一个指向该文件的硬链接。

显然,这需要与原始文件在同一个文件系统上发生——目前,我在同一个目录中创建硬盘,我相信可以合理地假设它可以满足这个要求;结果是一个临时文件显示在用户刚刚单击打开文件的目录列表中,这很难看。

有没有办法创建硬链接以使其不显示(使用该程序的客户在其目录树中有多个连接,因此不能假设特定目录位于同一文件系统上),或者是否存在读取另一个进程可能想要删除和重写的文件的更好方法(例如,通过捕获他们的访问权限并在让其他进程的访问权限通过之前关闭文件),因此该程序可以用于存档(只读)日志文件,而无需修改?

0 投票
3 回答
251 浏览

c# - 使用硬链接模拟连接文件?

我有一个文件的多个部分,我希望第 3 方 c++/c# 插件将其作为单个文件读取。基本上,当插件文件阅读器到达一个文件部分的末尾时,我希望它继续到下一个。

(对于任何感兴趣的人,插件是 Aforge.Net FFMpeg,我正在尝试导入 VOB 文件)

重新编程插件看起来像是一项艰巨的任务。另一种解决方案是将文件部分复制到连接文件中,但这很慢,因为我正在处理许多 GB 的数据。

是否可以使用文件系统硬链接指向多个文件?还是有其他方法可以“伪造”连接文件?使用命令行 FFMpeg 我可以使用“类型”来实时流式传输连接文件,但我无法弄清楚如何使用这个插件在 c# 中实现这一点。

我在 Windows 7 上。

0 投票
3 回答
2065 浏览

java - 如何在 Java 中实现“mklink /H”(硬链接)?

我想创建一个从文件 "C:\xxx.log" 到 "C:\mklink\xxx.log" 的硬链接。在 cmd 中它当然可以工作,但我想为这个用例编写一个软件。

  • 所以必须找到现有文件
  • 然后做一个硬链接
  • 然后删除旧文件

我开始实施,但我只知道如何创建文件。在谷歌上,我没有发现任何关于 mklink \H for Java 的信息。

0 投票
2 回答
892 浏览

bash - Bash:如果目标在同一卷内,则创建硬链接,否则复制

我的 bash 脚本将一些文件复制到一些多个目录中。

为了节省空间和最大化速度,我更喜欢制作硬链接而不是副本,因为无论如何所有副本都需要在其生命周期内保持相同。

但是,该脚本在不同的计算机上运行,​​并且可能存在目标目录存在于与源目录不同的卷中的情况。在这种情况下,我无法进行硬链接,只需要复制文件即可。

如何检查源目录和目标目录是否存在于同一卷中,以便我根据它进行硬链接或复制?

0 投票
3 回答
4118 浏览

ubuntu - zip存档中是否可以使用硬链接?

我正在创建一个包含两个不同路径的相同文件的 zip 存档。zip 存档格式是否支持类似于 Unix 硬链接概念的东西?我的意思是能够只存储一次文件(节省空间),但可以将该数据块索引到 zip 存档中的两个不同路径。

如果文件格式确实支持这一点,我怎么能在 Ubuntu 中使用免费工具创建这样的档案?