我有一对夫妇的存储在多个地方在我的硬盘相同的文件。 我想我可以通过硬连接它们指向同一个文件节省了大量的磁盘空间。 我有点担心可能是灾难性的副作用。

我想这不影响权限,因为这些被存储在相应的目录,就像文件名,对不对? (更新:显然,我猜错了,权限是共享的,如卡尔演示了他的答案)

在最关心的是改变一个文件无意中也改变了其他文件。 只读文件应该是安全的呢。这是可以改变的文件也没关系,如果不是在现有文件中更新,新文件被写入。我相信大多数的应用程序工作的方式,但可能不是全部。

还有什么考虑?

我在OS X / HFS +。

有帮助吗?

解决方案

如果你想改变一个文件不是在其他文件中体现出来,不要使用硬链接。这就是硬链接整点 - 多个目录条目的同一文件(在磁盘上相同的块)。上的硬链接的名称中的一个改变的权限改变他们在两个:

$ touch file
$ ln file link
$ ls -l
total 0
-rw-r--r--  2 owner group  0 Nov 11 16:44 file
-rw-r--r--  2 owner group  0 Nov 11 16:44 link
$ chmod 444 file
$ ls -l
total 0
-r--r--r--  2 owner group  0 Nov 11 16:44 file
-r--r--r--  2 owner group  0 Nov 11 16:44 link

ln手册页:

  

一个硬链接到一个文件是从原来的目录项区分;到文件中的任何变化都有效地独立于用于引用该文件的名称。

其他提示

我写了一个小脚本来完成这一点。我只关心权限,如果你的备份是跨越多个用户或系统文件。

我有一堆的CD和DVD,其中许多有很多他们的冗余数据的旧备份。而不是通过所有的信息筛选和删除重复的,我花了时间机器的路线并取得所有匹配的文件(真正匹配的内容,我把他们所有的SHA1校验)。

之间的硬链接

现在我所有的备份卷看起来就像他们原本大部分的多余文件,是历史。在一个打嗝的是,在该文件的内容很多媒体文件存储元数据,以便每个版本略有不同。请参见的Python代码这篇文章。无担保!!!

请确保你做mdimport your_backup_dir/算账:聚光灯和Finder变得有点心慌,当你做大量的数据操作。我去重复我的240 GB的备份文件夹以这种方式,花了约45分钟。

另外请注意,大多数OSX应用将打破你的硬链接,并保存在一个新的inode,最UNIX'y可能的应用程序将保存的硬链接(除Emacs的,我听到)。

硬连接不是通常的最佳实践。普通老式软/符号链接(LN -s)应该成为一样好。

如果你的主要目标是“重复数据删除Time Machine备份”当你在一个评论提及,那么避免你的一些顾虑另一个选择是使用的 Time Machine偏好的。您可以在目录或文件级别排除。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top