什么是Bash命令来创build一个硬链接到OS X中的一个目录?

如何在OS X中创build一个指向目录的硬链接(而不是符号链接或Mac OS别名)? 有“目标目标”命令,但只有当目标是文件时才起作用。

我知道Mac OS与其他Unix环境不同,它允许硬链接到文件夹(例如Time Machine),但是我不知道如何自己做。 我也意识到,使用目录硬链接不是“最佳实践”,因为它可以导致一些程序扫描树无限recursion。

这里是关于堆栈溢出问题的链接:

什么是Bash命令来创build一个硬链接到OS X中的一个目录?

这应该是不可能的。

man 2 link

int link(const char *path1, const char *path2);

  .... 

为了使系统调用成功,path1必须存在,并且path1和path2必须位于同一个文件系统中。 按照POSIX.1的规定,path1可能不是一个目录。

我在MacOS X 10.5.6上的另一个答案中尝试了代码 – 尝试在目录中创build从目录到相同名称的链接时不起作用。

但是,如果两个生成的目录没有相同的父目录,它就可以工作。 有必要阅读链接的文章,找出答案。

我听说它被故意禁用,因为当你改变硬链接时它会变得复杂. 和东西。

那么你不能直接在BASH中完成。 然而…我在这里find一篇文章,讨论如何间接地做到这一点: http : //www.mactech.com/articles/mactech/Vol.23/23.11/ExploringLeopardwithDTrace/index.html通过编译一个简单的小程序:

 #include <unistd.h> #include <stdio.h> int main(int argc, char *argv[]) { if (argc != 3) return 1; int ret = link(argv[1], argv[2]); if (ret != 0) perror("link"); return ret; } $ gcc -o hlink hlink.c -Wall