gpt4 book ai didi

c - 如何查找目录的链接数

转载 作者:行者123 更新时间:2023-11-30 14:33:33 24 4
gpt4 key购买 nike

mkdir d
mkdir d/a
mkdir d/b
mkdir d/c

在终端中执行这些命令时,目录 d 的链接计数是多少?

最佳答案

在 POSIX 系统上,您可以使用 stat() syscall读取st_nlink以获取任何文件或目录的硬链接(hard link)数量,根据包含它的文件系统定义为“硬链接(hard link)数量”

但是 POSIX 实际上并没有定义目录的“硬链接(hard link)数量”的含义。目录不能有硬链接(hard link),因此理论上它们的硬链接(hard link)计数始终为 1。

不同的文件系统使用st_nlink来转发有关目录的不同信息:

在 Linux (ext4) 上,st_nlink 表示该目录的子目录数量及其特殊条目:

$ ls -F d/
a/ b/ c/ d e f
$ ls -a d/
. .. a b c d e f
$ ls -a d/ | wc -l
8
$ ls -al d/ | grep ^d | wc -l
5
$ stat --printf %h d/
5

因此,如果您运行问题中的命令,您将得到 5。

另一方面,MacOS (apfs) 将其定义为该目录中所有条目的数量,加上其特殊条目:

$ ls -F d/
a/ b/ c/ d e f
$ ls -a d/
. .. a b c d e f
$ ls -a d/ | wc -l
8
$ ls -al d/ | grep ^d | wc -l
5
$ stat --printf %h d/ # with GNU coreutils
8

因此,如果您运行问题中的命令,您将得到 8。

关于c - 如何查找目录的链接数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59241962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com