计算inode编号的链接数?

Bub*_*ter 7 linux inode

如何计算 inode 编号的链接数?如果我知道 inode 编号是 592255 - 我可以做些什么来找出链接数?

我知道目录的链接数至少为 2,但不知道如何解决。

slm*_*slm 8

使用名称查找链接数

您可以使用该stat命令获取给定文件/目录上的链接计数:

$ stat lib/
  File: ‘lib/’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 11666186    Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2014-03-21 18:16:10.521963381 -0400
Modify: 2014-01-13 17:16:49.438408973 -0500
Change: 2014-01-14 17:57:46.636255446 -0500
 Birth: -
Run Code Online (Sandbox Code Playgroud)

看一下手册页stat

%h     number of hard links
%i     inode number
Run Code Online (Sandbox Code Playgroud)

因此,您可以直接使用stat's--printf--format输出功能获取此值:

$ stat --printf="%h\n" lib/
3

$ stat --format="%h" lib/
3

$ stat -c "%h" lib/
3
Run Code Online (Sandbox Code Playgroud)

使用 inode 查找链接数

另一方面,如果您只知道 inode 编号,则可以像这样向后工作:

$ ls -id lib
11666186 lib

$ find -inum 11666186 -exec stat -c "%h" {} +
3
Run Code Online (Sandbox Code Playgroud)

参考


Mic*_*nez 6

find命令提供inode 编号并告诉它stat在文件上运行命令:

find . -inum #### -exec stat -c "%h" {} \;
Run Code Online (Sandbox Code Playgroud)