Предположим, у меня есть сеанс 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 этим пользователем (поскольку последний будет соединение, выполняющее саму команду).

Это явно не очень надежное или элегантное решение. Есть ли способ лучше?

0