你怎么知道一个目录在 OSX 中从终端有多少硬链接?
在 OSX 中,您可以对目录进行硬链接。这就是时间机器的工作原理。我想知道哪些目录有硬链接,这样我就可以看到哪些目录是 Time Machine 的新目录。
我试过了ls -l
,stat -f "%l %N" *
但似乎都没有给出正确的答案。
有人知道怎么做吗?
你怎么知道一个目录在 OSX 中从终端有多少硬链接?
在 OSX 中,您可以对目录进行硬链接。这就是时间机器的工作原理。我想知道哪些目录有硬链接,这样我就可以看到哪些目录是 Time Machine 的新目录。
我试过了ls -l
,stat -f "%l %N" *
但似乎都没有给出正确的答案。
有人知道怎么做吗?
ls -l
是在目录中显示硬链接文件的正确方法。
来自维基百科关于硬链接的文章:
大多数现代操作系统不允许目录上的硬链接以防止无限递归。此外,目录上的硬链接会导致父目录条目不一致。一个值得注意的例外是 Mac OS X v10.5 (Leopard),它使用目录上的硬链接仅用于 Time Machine 备份机制。符号链接和 NTFS 连接点通常用于此目的。
根据定义,我认为即使是 Time Machine 也无法跨文件系统进行硬链接。我相信创建硬链接只会创建一个与原始索引节点编号相同的文件(或目录),并且索引节点仅在给定文件系统中是唯一的。
我认为没有任何方法可以计算文件或目录有多少符号链接,因为可以有符号链接指向未安装卷上的文件。
更新:当你创建一个目录时,它会自动有两个硬链接。一个来自目录本身 (".") 和一个来自其父目录 ("..") 对目录执行 ls -ld 将为您提供指向该目录的硬链接的数量。