2009-07-21 131 views

回答

3

你可以得到当前工作目录的inode编号与

fstat -p $PID 

它看起来像lsof的会给你当前工作目录的人类可读的形式,但我们不会对任何安装本地的FreeBSD机器,所以我无法验证。

-1

/proc/$ PID/cwd包含程序当前工作目录的符号链接。

+1

需要注意的是`/ proc`文件系统并不一定适用于FreeBSD的所有安装。 – 2009-07-21 10:47:27

+0

这适用于Linux,但似乎不属于FreeBSD/proc的一部分。请参阅procfs手册页:http://www.freebsd.org/cgi/man.cgi?query=procfs – 2009-07-21 15:10:40

3

fstat可以找到inode号码和文件系统,并找到可以找到正确的目录。

试试这个:

fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");' 

当非root身份运行,发现将可能输出相当多的“权限被拒绝”,用户可以在$F[3]前面插入close(STDERR); (第一后避免信息单引号)。

1

在FreeBSD的更新版本中,可以使用procstat -f $PID,它显示路径名,如果它仍在内核名称缓存中。