【发布时间】:2013-02-13 20:24:02
【问题描述】:
所以我正在编写一个 python 脚本,我的目标是使用 lsof 为本地用户列出特定目录(我的主文件夹)下的所有打开文件,并且只输出“uniq”条目。
我的脚本如下所示:
import os, sys, getpass
user = getpass.getuser()
cmd = "lsof -u " + user + " +d ~ | sort | uniq"
os.system(cmd)
这种做我想做的事,它为当前本地用户做 lsof,但它无法在我指定的主目录中专门查找。相反,它在根目录上执行 lsof,并为用户列出整个文件系统的所有 lsof。但是,当我在没有-u user 的情况下执行相同的命令时,它看起来专门在主目录中。我一直在研究为什么会这样,是的,我尝试使用+d /home/ 和+d ~/home/ 而不是仅仅使用+d ~ 来让它工作但没有成功,所以我有点难过。任何建议都会很棒:)
【问题讨论】:
-
您为什么期望
+d /home/或+d ~/home/做与+d ~类似的事情?通常,~将引用类似/home/me的东西,而不仅仅是/home,并且您不太可能在/home中打开任何文件,除了/home/me。 (请注意,+d不是递归的——如果需要,请使用+D。)而~/home/将是/home/me/home/,它可能甚至不存在。那么,你想通过尝试来完成什么?