如何克服“设备或资源繁忙”?

如何克服“设备或资源繁忙”?

我尝试访问rm -rf一个文件夹,结果“设备或资源繁忙”。

在 Windows 中,我会使用 LockHunter 来解决这个问题。 linux 的等价物是什么? (请给出一个简单的“解锁此”方法作为答案,而不是完整的文章,例如这个。虽然它们很有用,但我目前只对 ASimpleMethodThatWorks™ 感兴趣)

答案1

您想要的工具是lsof,它代表列出打开的文件

它有很多选项,因此请检查手册页,但如果您想查看目录下所有打开的文件:

lsof +D /path

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

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

答案2

有时这是安装问题的结果,所以我会卸载您要删除的文件系统或目录:

卸载/路径

答案3

我遇到了同样的问题,从 @camh 推荐开始构建了一个单行:

lsof +D ./ | awk '{print $2}' | tail -n +2 | xargs -r kill -9
  • awk获取 PID。
  • tail摆脱讨厌的第一个条目:“PID”。
  • xargskill -9在 PID 上执行。 / -r--no-run-if-empty防止kill命令失败,以防lsof没有返回任何 PID。

答案4

这是解决方案:

  1. 进入目录并输入ls -a
  2. 您将找到一个.xyz文件
  3. vi .xyz并查看文件的内容是什么
  4. ps -ef | grep username
  5. 您将在第 8 列(最后一行)看到 .xyz 内容
  6. kill -9 job_ids- 其中job_ids是第8列中相应错误导致内容的第2列的值
  7. 现在尝试删除该文件夹或文件。

相关内容