2009-07-21 127 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,它顯示路徑名,如果它仍在內核名稱緩存中。