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的基本都是文件很多(文件越多,目录就越大)