事实证明这个答案是错误的,请参考安德鲁的帖子获取正确答案。
是的,我做到了。
我用一个标准的免费Dropbox帐户和在btrfs卷中的Dropbox文件夹进行了测试。
测试内容如下:
ln /media/username/volume/Documents/testfile /media/username/volume/Dropbox/testfile
ls -li /media/username/volume/Documents/testfile
ls -li /media/username/volume/Dropbox/testfile
使用ls -li
命令的第一个数字显示i节点编号,权限和用户名之间的数字是链接计数器(显示文件具有多少个硬链接)。
在运行ln命令后,Dropbox托盘图标立即显示活动,并成功上传了测试文件。
我还测试了在Dropbox文件夹中创建第二个硬链接,它也上传了文件,但我不确定它是否意识到这只是一个文件。
我的测试文件是一个小的18KB的.ods文件,但它也可以处理更大的文件。
关于硬链接和i节点:
当你创建一个文件的硬链接时,你只是给它在不同文件夹中的第二个名称(如果你愿意,也可以是相同的名称)。
这些文件实际上并不真正放置在文件夹中,它们位于硬盘上,由一个i节点来标识(取决于文件系统类型)。
那么文件夹是什么?
文件夹只是一系列列表,也由一个i节点来标识,其中包含文件和其他“内部”文件夹的名称。此列表中的每个元素指向其对应的i节点。
因此,如果创建硬链接,所有链接都指向同一个i节点,因此它们都只是同一个文件。
注意,有些应用程序可能会拒绝处理具有硬链接的文件。其他应用程序可能会意外地或故意地打破硬链接,将一个文件分成两个文件,每个文件都有一个名称。
维基百科为我们提供了更多的信息:
https://en.wikipedia.org/wiki/Hard_link
https://en.wikipedia.org/wiki/Inode
要创建硬链接,您可以使用命令行工具
ln
。您可以像这样使用它:
ln TARGET LINK_NAME
目标是现有文件,link_name是文件的新名称。
完成后,您可以使用ls -li
检查文件的i-node编号,并且会发现两个链接具有相同的编号。
这里是man页面:http://linux.die.net/man/1/ln