我很清楚符号链接和硬链接之间的区别。我也意识到创建目录硬链接的危险。
不过,我坚持要创建指向目录及其所有子目录的硬链接(在同一分区上)。
但是,以下方法不起作用:
root@fab-ux:/home/fab-user/Public
# ln --directory ../Documents/CV/ CV
ln: failed to create hard link ‘CV’ => ‘../Documents/CV/’: Operation not permitted
是否有一个内核/文件系统(在 EXT4 上运行)参数可以让我完成这个愚蠢的操作?
是的,我可以挂载绑定,可以通过 cron 作业硬链接单个文件,......但关键是我想要物理上只有一个目录及其所有文件的便利性以及只上传某些硬链接目录的便利性在我的云公共目录中,云软件检测到符号链接并且不支持它们,最重要的是:我正在运行 Ubuntu!不是 OSX 也不是 Windows:我希望系统做我想做的事!
只要您停留在当前内核上(它是内核的一项功能,而不是文件系统的一个功能),就几乎没有办法绕过这个限制。
开放组基本规范第 7 期(摘录)
...在大多数历史实现中,链接到目录仅限于超级用户,因为此功能可能会在文件层次结构中产生循环或以其他方式破坏文件系统。这卷POSIX.1-2008通过禁止 link() 和 unlink() 这样做来延续这一理念。如果实现者设计了这样的扩展,其他功能可以做到这一点......
因为不再有类似的系统调用
link()
不检查旧路径是否为常规文件,所以唯一的出路可能是创建一个与linkat()类似的函数,以您想要的方式进行操作。您不能在 linux 中创建指向目录的硬链接。我听说OSX允许时间机器使用它,但Linux不允许。您可以做的最接近的是
cp -l
,它将创建一个新的目录树,镜像原始文件,但硬链接所有常规文件。