我正在尝试编写一个简单的应用程序,该应用程序必须读取某个目录中当前打开的所有文件。更具体地说,我想获取我的文档文件夹中任何位置打开的文件列表,但我不想要进程的 ID 或进程名称,我想要打开文件的完整路径。
问题是我还没有找到任何可以做到这一点的方法。我既无法在 Linux Shell 中做到这一点(使用 ps 和 lsof 命令),也无法使用 Python 的 psutil 库。这些都没有给我所需的信息,这些信息只是目录中当前打开的文件的路径。
有什么建议吗?
提前致谢,
PS:我将其标记为 python 问题(除了 os 相关标签),因为如果可以使用某些 python 库来完成它将是一个加分项。
答案1
lsof 命令应该对你有用。尝试
lsof | grep cwd
其中 cwd 代表当前工作目录。
答案2
似乎应该有一种更有效的方法来做到这一点,但这应该会给你想要的结果:
lsof -Fn +D $HOME | sed -n '/^n/ s/n//p' | sort -u
在 stackoverflow 上查看此相关问题在 Linux 中使用 Python 检查打开的文件。