如何列出主目录中inode链接数最多的所有文件和目录
列出主目录中同inode且链接数最多的文件/目录
可以通过组合find和awk命令实现需求,直接执行以下命令即可:
find ~ -type f,d -printf "%i %n %p\n" | awk '$2>1' | awk '{ inode[$1] = $2 paths[$1] = paths[$1] ? paths[$1] "\n" $3 : $3 } END { max_link = 0 for (i in inode) { if (inode[i] > max_link) max_link = inode[i] } for (i in inode) { if (inode[i] == max_link) print paths[i] } }'
命令说明
find ~ -type f,d -printf "%i %n %p\n":遍历主目录下所有文件和目录,输出格式为「inode编号 链接数 完整路径」。awk '$2>1':过滤掉无硬链接的条目(链接数为1的文件/目录没有其他同inode的关联项)。- 第二个
awk脚本:- 用数组记录每个inode对应的链接数,以及该inode下所有文件/目录的完整路径。
- 遍历数组找到最大链接数,最后输出所有拥有该最大链接数的inode对应的全部路径。
比如你提供的示例场景中,执行命令后会输出:
/home/sysadmin/file1 /home/sysadmin/myfile /home/sysadmin/myDocs
内容的提问来源于stack exchange,提问作者eawedat
相关产品推荐
相关产品推荐

