Linux 如何获取包含多个目录的目录的链接计数?

Linux 如何获取包含多个目录的目录的链接计数?,linux,ls,Linux,Ls,我在想,这将是目录中链接计数的总和?您可以使用tree实用程序查看目录计数。 Linuxfind实用程序有一个选项-type d可以过滤某些类型(目录、文件、符号链接、套接字或其他),因此它应该与wc-l一起帮助计算标准输出行的数量: find ./ -type d | wc -l 如果需要限制嵌套目录的数量,请使用-maxdepth参数: find ./ -type d -maxdepth 2 | wc -l 您只想汇总所有子目录的链接计数吗 我可以问一下目的是什么吗 你可以做类似的事情:

我在想,这将是目录中链接计数的总和?

您可以使用tree实用程序查看目录计数。

Linuxfind实用程序有一个选项-type d可以过滤某些类型(目录、文件、符号链接、套接字或其他),因此它应该与wc-l一起帮助计算标准输出行的数量:

find ./ -type d | wc -l
如果需要限制嵌套目录的数量,请使用-maxdepth参数:

find ./ -type d -maxdepth 2 | wc -l

您只想汇总所有子目录的链接计数吗

我可以问一下目的是什么吗

你可以做类似的事情:

您甚至可以找到平均链接数,同时:

find ./ -type d -ls | awk '{sum += $4; n++;} END {print sum/n;}'

链接计数与目录无关,它与索引节点有关。链接计数本质上是一个引用计数

  • inode是文件系统中的基本对象
  • 目录项链接到索引节点
  • 目录也有一个索引节点,就像普通文件一样
  • 每个链接计数:链接到一个inode的目录项会将计数加1,因此两个目录项引用的inode的链接计数为2
  • 指向父目录的链接也是此目录的链接(这是针对孤立目录的保护措施)
  • 当inode的链接计数变为零时,它将不被引用,并且inode(以及相关的磁盘块或其他)也可以被丢弃
  • [“打开”文件无形中也有类似的机制]
  • 符号链接不计数:添加/删除文件的符号链接时,其链接计数将不受影响。(因此:可以符号链接到不存在的文件)

不,这只是子目录数+2。每个目录都有一个到其父目录的链接。。没有指向祖父母的链接,因此向下的目录不会增加顶层目录的链接计数。如果要获得总链接计数,需要编写一个循环和递归的函数。不,这只会显示目录的链接计数。这只计算直接子目录,而不是所有子目录。这对您有帮助吗?查找。/-类型d | wc-l
find ./ -type d -ls | awk '{sum += $4; n++;} END {print sum/n;}'