我的所有 inode 都在哪里使用?

新手上路,请多包涵

我如何找出哪些目录负责咀嚼我的所有 inode?

最终根目录将负责最大数量的 inode,所以我不确定我想要什么样的答案..

基本上,我用完了可用的 inode,需要找到一个不需要的目录来剔除。

谢谢,很抱歉这个模糊的问题。

原文由 Joel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 515
2 个回答

所以基本上你正在寻找哪些目录有很多文件?这是第一次尝试:

 find . -type d -print0 | xargs -0 -n1 count_files | sort -n

其中“count_files”是一个shell脚本(感谢乔纳森)

 echo $(ls -a "$1" | wc -l) $1

原文由 Paul Tomblin 发布,翻译遵循 CC BY-SA 2.5 许可协议

如果您不想创建新文件(或者因为 inode 用完而无法创建文件),您可以运行以下查询:

 for i in `find . -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n

正如内部人员在另一个答案中提到的那样,使用 find 的解决方案会更快,因为递归 ls 非常慢,请在下面查看该解决方案! (信用到期的信用!)

原文由 Hannes 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题