假设我有一个到远程主机的 SSH 会话,并且假设我知道本地计算机上该会话的 PID。我正在尝试想出一种方法来处理一个进程在我的本地机器上以编程方式获取 SSH 会话的工作目录在远程主机上。
这是我想到最好的方法。
$ sh -c "$(cat /proc/$SSH_PID/cmdline | tr '\0' ' ')\
'readlink /proc/\$(pgrep -P \
\$(pgrep -u \$(whoami) sshd | tail -n2 | head -n1)\
\$(basename \$SHELL))/cwd'"
换句话说,通过 PID 从现有的 SSH 会话中获取命令行,然后使用命令再次运行它,以读取此用户通过 sshd 建立的倒数第二个连接的 shell 的 CWD(因为最后一个是运行命令本身的连接)。
这显然不是一个非常强大或优雅的解决方案。有没有更好的方法?