我尝试使用rm -rf file_name
删除Linux中的文件,但收到错误:
rm: file_name not removed. Text file busy
如何找出使用此文件的进程?
答案 0 :(得分:101)
您可以使用fuser
命令,例如:
fuser file_name
您将收到使用该文件的进程列表。
您可以使用不同的标志,以便接收更详细的输出。
您可以在fuser's Wikipedia article或man
页面中找到更多信息。
答案 1 :(得分:24)
@ jim的回答是正确的 - fuser
就是你想要的。
此外(或者替代地),您可以使用lsof
获取更多信息,包括用户名,以防您需要权限(无需运行其他命令)来终止进程。 (当然,如果您想要删除该过程,fuser
可以使用-k
选项执行此操作。您可以fuser
使用-s
选项的其他信号 - 查看手册页了解详情。)
例如,在一个窗口中运行tail -F /etc/passwd
:
ghoti@pc:~$ lsof | grep passwd
tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
请注意,您还可以使用lsof
找出正在使用特定套接字的进程。在你的武器库里有一个很好的工具。
答案 2 :(得分:-1)