如何获取其中包含多个目录的目录的链接数?

时间:2015-09-14 01:30:32

标签: linux ls

我原以为这是目录中链接数的总和?

4 个答案:

答案 0 :(得分:4)

链接计数不是关于目录,而是关于inode。链接计数本质上是一个引用计数。

  • inode是filesytem中的基本对象
  • 目录条目链接到 inode s
  • 目录一个inode,就像普通文件一样
  • 每个链接都计数:链接到inode的目录条目将计数加1,因此两个目录条目引用的inode的链接数为2。
  • 指向父目录的链接也是目录的链接(这是防范 orphan 目录的安全措施)
  • 当inode的链接数变为零时,它是未引用的,并且inode(和相关的磁盘块,或其他)也可以被丢弃
  • ["开"文件无形中具有类似的机制]
  • 符号链接不计:当添加/删除文件的符号链接时,其链接计数不会受到影响。 (因此:您可以符号链接到不存在的文件)

答案 1 :(得分:0)

您可以使用树实用程序查看目录数。 enter image description here

答案 2 :(得分:0)

Linux 查找实用程序有一个选项 -type d 来过滤某些类型(目录,文件,符号链接,套接字或其他),因此它应该与 wc -l <​​/ em>计算STDOUT行数:

find ./ -type d | wc -l

如果您需要限制嵌套目录的数量,请使用 -maxdepth 参数:

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

答案 3 :(得分:0)

您是否只想总结所有子目录的链接数?

我的目的究竟是什么目的?

您可以执行与Unix find average file size类似的操作:

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

您甚至可以找到平均链接数,而在此处:

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