Eu contribuirei com minha própria resposta.
Uma opção, no contexto do shell interativo (a questão se concentra nesse contexto), poderia manter automaticamente um link para la /proc/$PID/cwd
, usando a oportunidade de automação que o Bash fornece:
PROMPT_COMMAND="ln -sfT \$(pwd) ~/$LINK_NAME"
A opção f
é necessária, pois o link será freqüentemente substituído. A opção T
é necessária, caso contrário, parece que a opção f
funciona corretamente.
Os reservatórios podem ser feitos cooperativos, usando isto em ex., ~/.bashrc
:
if [ -v CWD_LINK_NAME ]; then
PROMPT_COMMAND='ln -sfT "$(pwd)" "'$CWD_LINK_NAME'";'$PROMPT_COMMAND
declare -r CWD_LINK_NAME
function rm_cwd_link() {
rm "$CWD_LINK_NAME"
}
trap rm_cwd_link EXIT
fi
Um shell ou um terminal pode ser executado com CWD_LINK_NAME
definido para qualquer valor relevante. Ex. CWD_LINK_NAME="~/$SOME_ROLE_NAME" gnome-terminal
Outra alternativa é usar o mesmo conceito para rastrear o diretório de trabalho da pêra em uma variável, sendo esse rastreamento baseado em @ Gilles e @enedil contribuições:
PROMPT_COMMAND="PEAR_WD=\$(lsof -p $PID | awk '/cwd/{print \}')"
No entanto, isso é menos preciso e menos prático, embora ainda possa ser o único caminho para os casos raros em que o $PROMPT_COMMAND
não pode ser definido no outro shell.
Sou a favor da primeira opção (ainda esperando antes de selecionar uma resposta, se houver outras contribuições por vir).