Предположим, у меня есть сеанс 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'"
Другими словами, получить командную строку из существующего сеанса SSH с помощью PID, а затем снова запустить ее с командой, чтобы прочитать CWD оболочки второго-последнего соединения, созданного sshd этим пользователем (поскольку последний будет соединение, выполняющее саму команду).
Это явно не очень надежное или элегантное решение. Есть ли способ лучше?