当前工作目录是每个进程的属性,而不是用户的属性。
在Linux上,你可以得到的id进程的当前工作目录$pid做一个readlink()上/proc/$pid/cwd使用,例如readlink/realpath命令或:a/ :A/:P在水珠预选赛zsh。除非您是超级用户,否则这仅适用于您自己的进程(当前工作目录与进程当前正在访问的其他文件一样是潜在的敏感信息)。
$ ps
PID TTY TIME CMD
9467 pts/1 00:00:00 zsh
14074 pts/1 00:00:00 ps
$ readlink /proc/9467/cwd
/usr/local
$ printf '%s\n' /proc/9467/cwd(:P)
/usr/local
Run Code Online (Sandbox Code Playgroud)
更便携,您可以使用lsof:
$ lsof -ap 9467 -d cwd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zsh 9467 chazelas cwd DIR 253,0 4096 786604 /usr/local
Run Code Online (Sandbox Code Playgroud)
然后,您可以将它与-u user而不是结合-p pid以获取以该用户身份运行的所有进程的 cwd:
sudo lsof -au user -d cwd
Run Code Online (Sandbox Code Playgroud)
在某些系统上,例如 FreeBSD,sudo不需要(以超级用户权限运行命令),因为在那里访问该信息不受限制。
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |