自动解决rm无法删除路径:设备或资源繁忙错误

问题描述 投票:0回答:3

我正在尝试使用

/path/to/dir
命令删除目录
rm -rf
。 不幸的是我得到了错误

rm: cannot remove '/path/to/dir/.nfsdda293a660f276ca0000000a': Device or resource busy

经过一番研究,我意识到我需要找到哪个进程正在使用该文件,然后才能删除它:

lsof /path/to/dir/.nfsdda293a660f276ca0000000a

它将返回与进程关联的 PID:

COMMAND   PID
python    28594

然后我杀死 PID 并再次尝试删除,但我仍然收到初始错误。

如何在脚本内强制脚本自动删除

/path/to/dir
,无需手动干预?

linux bash unix rm lsof
3个回答
4
投票

这对我有用:

lsof +D /path

这将在 /path 下的文件系统中递归,所以要小心在大型目录树上执行此操作。

一旦知道哪些进程打开了文件,您就可以退出这些应用程序,或使用kill(1)命令杀死它们。

信用: https://unix.stackexchange.com/questions/11238/how-to-get-over-device-or-resource-busy


0
投票

如果 @Hayden 答案对您没有帮助(不返回任何内容或类似内容),这个命令可以很方便:

umount /path

信用


0
投票

这里有这么多复杂的答案,让大家感到困惑,请执行以下操作。

卸载目录名

然后再试一次 例如

rm -rf 目录名

简单。

© www.soinside.com 2019 - 2024. All rights reserved.