问题标签 [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 投票
1 回答
45 浏览

git - 硬链接到 Git 标签中的文件(将文件包含在另一个项目中)

所以我有一些小文件,我在很多不同的项目中使用。例如,我有一个用于 PHP 的 MySQL 包装器和一个用于管理 C++ 中的缓冲区的类。到目前为止,我一直将它们保存在一个 SVN 存储库中。然后,当我在项目中使用它时,我将创建一个标签(几乎只是将它复制到 SVN 中的标签文件夹中),然后我会从我的项目中硬链接到该标签。这样,如果我在主干中的副本中添加、删除或修复任何内容,都不会影响项目。

这样,如果我以后想将项目切换到较新的版本,只需检查它使用新版本的标记版本之间的差异,如有必要更新项目中的一些代码,只需更改硬链接即可。

但是,我现在正在将我的大部分代码更改为 Git。我知道 Git 有标签,但文件夹只包含主干(标签存储在版本历史记录中,而不是简单的目录)。链接到这些文件的特定标签而不会有任何以后的更改影响它们的最佳方法是什么?我能想到的唯一方法是检查一个特定的标签,并链接到它。但是,这将要求我为每个使用不同版本的项目检查它,这似乎比它应该的更麻烦。

有什么简单的方法可以做到这一点?

谢谢。

0 投票
4 回答
3435 浏览

python - 如何使用 python 用硬链接替换重复文件?

我是一名摄影师,做了很多备份。多年来,我发现自己拥有很多硬盘。现在我买了一台 NAS 并使用 rsync 在一个 3TB raid 1 上复制了我所有的照片。根据我的脚本,这些文件中有大约 1TB 是重复的。这来自于在我的笔记本电脑上删除文件之前进行多次备份并且非常混乱。我确实在旧硬盘上备份了所有这些文件,但如果我的脚本把事情搞砸了,那就太痛苦了。您能否看看我的重复查找器脚本并告诉我您是否认为我可以运行它?我在一个测试文件夹上尝试过,看起来还可以,但我不想在 NAS 上搞砸。

该脚本在三个文件中包含三个步骤。在第一部分中,我找到所有图像和元数据文件,并将它们放入搁置数据库(datenbank)中,并以它们的大小作为键。

第二部分。现在我删除列表中只有一个文件的所有文件大小,并创建另一个搁置数据库,其中 md5 哈希作为键,文件列表作为值。

最后是最危险的部分。对于 evrey md5 密钥,我检索文件列表并执行额外的 sha1。如果匹配,我会删除该列表中除第一个文件之外的每个文件,并创建一个硬链接来替换已删除的文件。

你怎么看?非常感谢。

*如果这很重要:它是 Synology 713+ 并且具有 ext3 或 ext4 文件系统。

0 投票
2 回答
1094 浏览

mercurial - mercurial 存储库的数据损坏

我在c:\Dropbox\code. 我已经使用以下方法在本地创建了这个 repo 的克隆:

这个裸仓库仅用于备份目的。我定期将更改推送到 codeBackup。此外,两个目录都备份在云中(分别为 Dropbox 和 Google Drive)。

如果我的仓库损坏了,由于克隆操作使用了指向原始仓库的硬链接,仓库codecodeBackup自动损坏吗?这样我的双云备份策略就没有用了吗?

PS:我知道后备选项是使用云服务来恢复以前已知的良好状态。


更新:挖掘后,我将添加这些以供参考

问题是,如果完成了“hg clone”(没有 --pull 选项),那么目标和源 repo 使用硬链接1共享 .hg/store 内的文件,如果文件系统提供硬链接功能(NTFS 提供) .

如果对其中一个克隆进行提交或推送,Mercurial 旨在破坏 .hg 中的此类硬链接。这样做的先决条件是,如果 mercurial 询问“此文件上有多少硬链接?”,则使用的 Windows API mercurial 应该给出正确的答案。

我们发现这个答案几乎总是错误的(总是报告 1,即使它实际上是 >1)如果 hg 进程在一台 Windows 计算机上运行并且存储库文件在另一台 Windows 计算机上的网络共享上。

  • 为避免硬链接(使用 --pull):

    hg clone -U --pull c:\Dropbox\code c:\GoogleDrive\codeBackup

  • 检查硬链接:

    fsutil hardlink list <file>: 显示所有硬链接<file>

    find . -links +1: 显示所有硬链接 > 1 的文件

    ls -l:显示每个文件旁边的硬链接计数

0 投票
1 回答
1939 浏览

backup - Rsnapshot 没有硬链接?

我正在使用 Rsnapshot 在 EncFS 加密分区上备份我的所有服务器。该分区是使用paranoiaEncFS 提供的默认模式创建的,因此它不支持硬链接。

我可以第一次运行 Rsnapshot(创建daily.0, weekly.0, monthly.0),但不能第二次运行。

有没有办法在没有硬链接功能的情况下使用 Rsnapshot?我知道这听起来有点傻,但我rsnapshot.conf的配置非常好,我不想切换到另一个软件或擦除并重新创建 EncFS 卷。

谢谢

0 投票
2 回答
2008 浏览

php - 不允许链接()操作

这很奇怪,有时有效,有时无效。

我已经放置了链接()参数的 var_dumps。

__

__

__以上工作(这里没有错误,实际上创建了硬链接)

__

我真的找不到任何模式......当我制作一个脚本来手动测试之前的一个时,也失败了:

阿帕奇的日志:

在目标名称中删除 _ 的空格没有帮助。

谢谢!

0 投票
4 回答
165318 浏览

ubuntu - Nginx 站点已启用,站点可用:无法在 Ubuntu 12.04 中的配置文件之间创建软链接

我正在尝试在 /etc/nginx/ 中的启用站点和站点可用目录中包含服务器块的配置文件之间创建软链接。

我正在使用的命令是:

当我然后执行:

结果是:

immigrationinformation.conf -> immigrationinformation.conf部分有一个带有红色字体的木炭。

然后当我尝试访问此软链接时,我被告知它已损坏。

当我在站点可用目录中创建软链接时,即

它正常工作。但是,如果我随后将其移至启用站点的目录,则链接将再次断开。

我可以通过文件管理器 GUI 创建软链接,但不能通过命令行。我也可以毫无问题地创建硬链接。

我怀疑这是一个权限问题,所以我尝试将目录和目录本身的所有权限设置为 777,并将所有者更改为 root 以外的其他内容,但仍然没有运气。

任何帮助将不胜感激,谢谢。

0 投票
1 回答
224 浏览

windows - MSWord 破坏硬链接

问题:
是否有任何选项可以处理带有硬链接 (mklink /h) 到另一个目录的 MSWORD 文件?

我所经历的:在将文件的硬链接
创建到不同的目录后,修改原始文档或“链接”的文件会导致完全不同步。.docx

可能的原因:
MSWord 在修改文件时创建了一个副本,然后用它替换了原始文件。打破硬链接

0 投票
1 回答
1960 浏览

linux - 在 unix 上创建标记文件的最便宜方法

我需要创建(很多)文件,其唯一目的是通过它们的存在来表示布尔条件。这些文件没有内容,它们的访问/修改时间或所有权无关紧要。只有他们的存在才重要。

我认为最便宜和最快的方法是创建到文件系统中某个固定目标的硬链接。

硬链接最大计数(我认为在 ext4 上 = 64000)存在一些不便,但我可以通过编写一个循环来使用可变目标来解决这个问题。

有没有更简单的方法,也许使用硬链接以外的东西来做我想做的事?

谢谢。

0 投票
1 回答
242 浏览

linux - rsync -L 标签是使用目标名还是主机名

我在 2 个不同分区上的文件上有一个目录,因为当它们 rsync 到我的客户端服务器时我需要这些硬链接而不是符号链接,-L 选项是否使用目标名称或文件的主机名..

即我的符号链接看起来像:

file_a.txt_ahahagj -> /usr/local/etc/file_a.txt

它是否使用:file_a.txt_ahahagj 或 file_a.txt

我需要它来使用 file_a.txt_ahahagj 如果有人知道如何做到这一点,那就太好了

0 投票
1 回答
191 浏览

unix - 文件删除机制如何在 Unix 上工作?

我想知道文件删除的内部机制如何在 Unix 上工作。

如果有一些指向实际文件的硬链接,我是否需要删除所有链接才能删除该文件?

如果我删除文件,硬链接会被自动销毁或删除吗?

另一方面,如果我使用符号链接指向一个文件,应该怎么做才能删除该文件?

最后,当所有指向它的链接都被破坏时,文件的空间将被释放用于其他用途。那是对的吗?