首页 > 解决方案 > Cygwin:列出进程及其正在访问的文件

问题描述

我正在寻找一种列出指定运行进程使用的所有文件的方法

我有一个脚本可以循环到存档目录树(每天一个目录)中的 zip 文件并提取一些信息

该脚本需要很长时间,所以我以“nohup ./script.sh &”格式执行它

我想知道是否有一个命令显示当前正在处理哪个 zip 文件“unzip -p”

我已经尝试了 ps --help 中提到的所有参数,但都没有成功。

是否有任何其他命令显示特定进程当前正在使用哪些文件?

提前致谢,节日快乐

标签: cygwinps

解决方案


使用/proc带有进程 PID 的文件系统

在此示例中,我使用了 PID 10904 的较少进程

$ ps | grep less
I   10904   15292   10904       9792  pty3      197609 12:00:17 /usr/bin/less

$ ls /proc/10904/fd/
0  1  2  3  4

$ ls -l /proc/10904/fd/4
lrwxrwxrwx 1 Marco Kein 0 Dec 24 12:02 /proc/10904/fd/4 -> /tmp/test5-b2.txt

推荐阅读