我有一个大文件文件夹。我希望该文件夹同时位于两个不同的位置 - 我的家庭文档和我的大学文档文件夹。
我已经使用 College 文件夹中指向 Home 文件夹的符号链接来完成此操作。
不幸的是,Dropbox 同步了我的 College 文件夹——我的文件空间很快就用完了。
Dropbox 是否遵循硬链接,如果是,我如何创建一个?
我有一个大文件文件夹。我希望该文件夹同时位于两个不同的位置 - 我的家庭文档和我的大学文档文件夹。
我已经使用 College 文件夹中指向 Home 文件夹的符号链接来完成此操作。
不幸的是,Dropbox 同步了我的 College 文件夹——我的文件空间很快就用完了。
Dropbox 是否遵循硬链接,如果是,我如何创建一个?
不,它没有。
当您更新文件时,Dropbox 会断开所有链接。因此,在上面@Falk 给出的示例中,如果他从远程计算机编辑该文件,当它同步回来时,链接将被破坏,并且 Dropbox 将包含一个名为
testfile (Falks conflicted copy)
.唯一有效的链接是软链接,其中原始文件是保管箱文件夹中的文件。这是我用来测试的脚本:
原来这个答案是错误的,请参阅 Andrew 的帖子以获取正确答案。
是的,我愿意。
我已经使用标准的免费保管箱帐户对其进行了测试,该帐户的保管箱文件夹位于 btrfs 卷中。
测试是:
命令中的第一个数字
ls -li
显示节点编号,权限和用户名之间的数字是链接计数器(显示文件有多少硬链接)。运行 ln 命令后,dropbox try 图标立即显示活动,并有效地上传了测试文件。
我还测试了在 Dropbox 文件夹中创建第二个硬链接,它还上传了文件,我不确定它是否知道这只是一个。
我的测试文件是一个 18KB 的小 .ods 文件,但它也应该适用于更大的文件。
关于硬链接和inode:
当您创建文件的硬链接时,您只是在不同的文件夹中为其提供了第二个名称(或者如果您愿意,可以使用相同的名称)。
这是文件并没有真正放在文件夹中,它们位于由 i 节点标识的硬盘驱动器上(取决于文件系统类型)。
那么什么是文件夹?
文件夹只是列表,也由 i 节点标识,其中包含文件的名称和“内部”的其他文件夹。此列表中的每个元素都指向它对应的 i 节点。
因此,如果您创建硬链接两者/全部都指向同一个 i 节点,因此它们都只是文件(同一个)。
请注意,某些应用程序拒绝处理具有硬链接的文件。其他应用程序可能会意外或故意破坏硬链接,从而将一个具有 2 个名称的文件转换为两个具有一个名称的文件。
维基百科为我们提供了更多信息:
https://en.wikipedia.org/wiki/Hard_link
https://en.wikipedia.org/wiki/Inode
要创建硬链接,您可以使用
ln
命令行工具,您可以像这样使用它:其中 target 是现有文件,而 link_name 是文件的新名称。完成后,您可以检查
ls -li
文件的 i 节点编号,并查看两个链接具有相同的编号。这是手册页: http: //linux.die.net/man/1/ln