Linux 如何获取包含多个目录的目录的链接计数?
我在想,这将是目录中链接计数的总和?您可以使用tree实用程序查看目录计数。Linux 如何获取包含多个目录的目录的链接计数?,linux,ls,Linux,Ls,我在想,这将是目录中链接计数的总和?您可以使用tree实用程序查看目录计数。 Linuxfind实用程序有一个选项-type d可以过滤某些类型(目录、文件、符号链接、套接字或其他),因此它应该与wc-l一起帮助计算标准输出行的数量: find ./ -type d | wc -l 如果需要限制嵌套目录的数量,请使用-maxdepth参数: find ./ -type d -maxdepth 2 | wc -l 您只想汇总所有子目录的链接计数吗 我可以问一下目的是什么吗 你可以做类似的事情:
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(以及相关的磁盘块或其他)也可以被丢弃
- [“打开”文件无形中也有类似的机制]
- 符号链接不计数:添加/删除文件的符号链接时,其链接计数将不受影响。(因此:可以符号链接到不存在的文件)
find ./ -type d -ls | awk '{sum += $4; n++;} END {print sum/n;}'