如何找出在Linux中使用文件的进程?

时间:2014-07-03 13:10:36

标签: linux ps

我尝试使用rm -rf file_name删除Linux中的文件,但收到错误:

rm: file_name not removed.  Text file busy

如何找出使用此文件的进程?

3 个答案:

答案 0 :(得分:101)

您可以使用fuser命令,例如:

fuser file_name

您将收到使用该文件的进程列表。

您可以使用不同的标志,以便接收更详细的输出。

您可以在fuser's Wikipedia articleman页面中找到更多信息。

答案 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)

$ lsof | tree MyFold

如所附图片所示:

enter image description here