windows中查看文件正在被哪个进程使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows中查看文件正在被哪个进程使用相关的知识,希望对你有一定的参考价值。

参考技术A

我们使用windows系统的时候,有时需要删除一个文件却被提示文件被某个进程占用。那么如何查看文件被哪个进程占用呢?下面我给大家分享一下。

工具/材料

资源管理器

    01

    首先按下Ctrl+shift+C组合键打开资源管理器,如下图所示,选择性能,然后点击打开资源监视器

    02

    接下来在资源监视器中选择CPU选项,如下图所示

    03

    然后我们在底部的输入框中输入要查找的文件即可,如下图所示

    04

    最后如果想结束占用文件的进程,那么如右键单击选择结束进程即可

查看 Mac OS X 中哪个进程正在使用文件

【中文标题】查看 Mac OS X 中哪个进程正在使用文件【英文标题】:See what process is using a file in Mac OS X 【发布时间】:2012-01-09 04:06:51 【问题描述】:

我希望能够跟踪文件并查看哪个进程正在接触该文件。那可能吗?我知道我可以在活动监视器中看到打开的进程列表,但我认为这很快就会让我看到它。原因是我正在使用框架,并且我认为正在使用框架的系统版本而不是调试版本,我想看看哪个进程正在触及它。

【问题讨论】:

这是一个使用问题,最好在 Super User 上提问 见apple.stackexchange.com/questions/14409/… 注意:^^^ 是一个非常相关的类似问题 - 仅供参考 ;-) 【参考方案1】:

lsof 将列出打开的文件,但对于短暂的触摸可能会有点尴尬(例如,如果文件在 lsof 运行时未打开,则不会显示)。

我认为你最好的选择是 fernLightning 的fseventer.app。它是“nagware”,可让您实时(以图形方式)观看 fsevents API。

【讨论】:

lsof | grep myfilename 为我工作。我的回收站中有一个 PDF 文件,系统声称该文件正在使用中。奇怪的是lsof 声称它正在被Preview 使用,但Preview 似乎没有运行(例如,当我通过正在运行的应用程序进行命令选项卡时)但Activity Monitor 确实显示它正在运行。愚蠢的预览。 这非常适合临时文件(即不保持打开但仅在保存时触摸的文件)。 我今天遇到了类似的问题,我的垃圾箱中的一个文件被僵尸预览进程持有。打开预览并再次退出它为我解决了这个问题。我认为 Preview 会定期保留文件,尽管它已退出。我经常在 Preview 中打开 Evernote 中的图像以对其进行裁剪,而且大多数情况下——通常情况下——即使在我退出 Preview 之后,Evernote 仍会认为该图像仍在另一个应用程序中打开。 这似乎与我现在遇到的问题相似 - 仍然没有解决方案。我使用 Chrome 下载了一个文件,然后使用 Finder 将其移动到另一个文件夹。它显示为灰色,所以我使用 lsof 找出打开文件的人:Finder。我尝试强制退出 Finder(它会自动重新启动它)。那没有用。我试着关闭我的笔记本电脑,认为这会让所有东西都进入睡眠状态,并希望能解决问题。那也没用。 lsof 继续将 Finder 显示为罪魁祸首,并且在 UI 中继续显示为灰色。 有趣的是,关闭查找窗口似乎可以解决问题。但是,如果我打开一个新的查找窗口并导航到同一个文件夹,问题仍然存在。我通过将错误的文件拖到垃圾箱解决了这个问题(产生一个警告,表明打开文件的程序可能会有不良影响),然后重新复制文件。【参考方案2】:

很简单:sudo fs_usage | grep [path_to_file]

【讨论】:

这是迄今为止最好的答案。 fs_usage 应该以 root 身份运行...这不是最好的解决方案。 这显示 fs 事件?如果一个进程打开了一个文件但没有对其进行任何操作,则此处不会显示任何内容。或者至少似乎是我的经验。 sudo fs_usage | grep musiclibrary 只显示 sudo lsof | grep musiclibrary 显示 3 个进程访问我的音乐库数据库文件。【参考方案3】:

另一个选项是Sloth。这是其他人提到的 LSOF 的免费开源 GUI。

【讨论】:

哇,这是一个非常棒的工具,感谢分享!它非常适合找到我忘记的过程。 我更喜欢命令行解决方案,因为它们更便携,但我必须承认这是一个非常好的工具!感谢您的建议。 这就像类固醇上的 lsof,非常好【参考方案4】:

更快的方法是:

$ lsof [path_to_file]

此解决方案不需要 root 密码,并为您返回以下清晰的结果:

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Finder     497  JR7   21r   REG    1,2   246223 33241712 image.jpg
QuickLook 1007  JR7  txt    REG    1,2   246223 33241712 image.jpg

【讨论】:

【参考方案5】:

但我用谷歌搜索了 2 分钟,找到了your answer here。

$ lsof | grep [随便]

[whatever] 替换为您要查找的文件名。 有了这个,你可以看到哪个程序拼命地抓住你的 即将被丢弃的文件。退出该程序后,您的垃圾箱将 空。

【讨论】:

问题在于我必须尝试非常快地键入 lsof。这可能只是暂时的 lsof -r 将 lsof 置于重复模式 在文件被释放的情况下使用 grep 是有意义的。

以上是关于windows中查看文件正在被哪个进程使用的主要内容,如果未能解决你的问题,请参考以下文章

windows查看文件被哪个进程占用

windows 查看文件被哪个进程占用

没有任何进程占用端口,但启动IIS时还是提示另一个程序正在使用此文件

查看哪个进程占用buffer cache 多

java怎么删除被进程占用的文件

lsof 查看文件被哪个进程占用