inode占满导致No space left on device inode快速解决方法

暂未发现其他比我这个更快的方法。
因为其他方法会展示那个非常卡的目录,导致效率极低。而我这个方法不会去展示那个目录。

查找占用的目录

find / -type d -size +1M -maxdepth 3 -exec ls -lhd {} \;

解析:
-type d:只查找目录
-size +1M:对于目录来讲,ls -lh显示的是该目录下inode数据表的大小。(目录本质上就是一个存储本目录中所有文件和文件夹的inode表单)
    据朋友反馈,腾讯面试Linux会问到这个问题,ls -lh目录大小是指的什么?
-maxdepth 3:查找目录深度,如果2层找不到,就找第三层,第四层,直到找到为止。
-exec ls -lhd {}:找到后用ls -lhd显示出来,不要忘记加-d,不然光光显示所有文件都会被卡死掉。

删除文件

方式1:rm -rf 目录
方式2:find 目录 | xargs rm -rf

警告、警告、警告

千万别试着去ls或者TAB键补全,以及其他操作该目录的命令。
因为文件太多展示会直接卡死你的终端,此时还是断开重连吧。

更新(20210302)

此方式仅适用于一个目录超多的文件(或目录,不涉及多级)
-size +20k,一般目录都是4k,基本大于20k的基本都是文件很多(文件越多,目录就越大)

posted @ 2021-01-25 14:50  此时  阅读(130)  评论(0编辑  收藏  举报