在linux系统中,有时候需要删除某一目录时常常会提示该目录非空,无法删除的情况,很多时候是由于正在某些进程正在使用该目录里的文件时被异常退出导致。
imaginemiracle:gcc$ rm -rf aaa/
rm: cannot remove 'aaa/ss/gcc': Directory not empty
解决方法:
一搬在这种目录下都会存在以下这类的隐藏文件
imaginemiracle:gcc$ la aaa/ss/gcc/
.fuse_hidden00051d20000000b3 .fuse_hidden00051e39000000b5 .fuse_hidden00052479000000b7 .fuse_hidden00052617000000b9
.fuse_hidden00051dd8000000b4 .fuse_hidden00051e46000000b6 .fuse_hidden00052544000000b8 .fuse_hidden00052ed5000000ba
我们需要做的是找到正在使用这些文件的进程并将其kill
即可。寻找方法如下:
imaginemiracle:gcc$ lsof aaa/ss/gcc/.fuse_hidden00051d20000000b3
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cc1 439914 imaginemiracle 7r REG 8,2 30739 3757251 aaa/ss/gcc/.fuse_hidden00051d20000000b3
imaginemiracle:gcc$ sudo kill -9 439914
imaginemiracle:gcc$ rm -rf aaa/
kill
完该占用进程后,便可正常删除该目录。