在linux系统,使用rm命令删除文件时遇到"Device or resource busy"提示。
rm -rf .ps_00000097*
rm: cannot remove ‘.ps_000000978eec4c0100000088’: Device or resource busy
rm: cannot remove ‘.ps_000000979b8e2f0100000089’: Device or resource busy
lsof | grep ps_000000978eec4c0100000088
sftp-serv 224700 [USERNAME] 4r REG 0,45 15980 650937912321 [PATH]/.ps_000000978eec4c0100000088
发现有进程锁定了文件。
杀掉进程,或者退出所有访问Linux的终端或者软件。
删除成功。
深入阅读:使用lsof的+D参数,根据目录筛选进程。
lsof +D /path
lsof +D ./ | awk '{print $2}' | tail -n +2 | xargs -r kill -9
- awk '{print $2}' 获取所有正在访问目录进程号
tail
-n +2 过滤掉标题行xargs
对所有PID执行kill -9
操作。-r 参数(--no-run-if-empty
),防止没有lsof没有返回PID的时候 kill命令报错。