如何判断一个目录在OSX中与终端有多少个硬链接?

时间:2011-06-13 05:57:09

标签: macos terminal timemachine

如何从终端判断OSX中目录中有多少个硬链接?

在OSX中,您可以创建目录的硬链接。这就是Time Machine的工作原理。我想知道哪些目录有硬链接,所以我可以看到哪些目录是Time Machine新的。

我已尝试ls -lstat -f "%l %N" *,但似乎都没有给出正确答案。

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:3)

ls -l是在目录中显示硬链接文件的正确方法。

来自Wikipedia’s article on hard links

  

大多数现代操作系统不允许目录上的硬链接来防止无休止的递归。此外,目录上的硬链接会导致父目录条目不一致。一个值得注意的例外是Mac OS X v10.5(Leopard),它仅在Time Machine备份机制的目录上使用硬链接。通常使用符号链接和NTFS交接点来实现此目的。

答案 1 :(得分:1)

根据定义,我甚至不认为Time Machine可以跨文件系统进行硬链接。我认为创建一个硬链接只会创建一个与原始文件相同的inode编号的文件(或目录),并且inode在给定的文件系统中只是唯一的。

我认为没有办法计算文件或目录中有多少符号链接,因为可以存在未安装卷上文件的符号链接。

更新:创建目录时,会自动有两个硬链接。一个来自目录本身(“。”),另一个来自其父目录(“..”)在目录上执行ls -ld将为您提供指向它的硬链接数。