Este error se está rastreando en Ubuntu Launchpad y GNOME Bugzilla.
Dado que esto me molesta principalmente con solo unos pocos directorios, utilizo la siguiente solución más simple.
Supongamos que tiene /home/username/work
como enlace simbólico a /long/path/named/asdf
. Así que haces cd ~/work
en gnome-terminal, abra una nueva pestaña y busque el terminal que informa la ruta completa. Para arreglar esto, simplemente ponga lo siguiente en su .bashrc
:
cd ${PWD/\/long\/path\/named\/asdf/$HOME\/work}
Cuando gnome-terminal inicia un nuevo shell, obtiene el directorio actual con $PWD, y si contiene /long/path/named/asdf
, reemplaza esa cadena con $HOME/work
y cd
s a la cadena resultante. Si $PWD no contiene la cadena, es equivalente a cd $PWD
, que no hace nada.
Sospecho que no hay una respuesta realmente buena para esto. gnome-terminal
encuentra bash
directorio de trabajo actual de inspeccionando /proc/<pid>/cwd
, que tiene los enlaces simbólicos expandidos (probablemente por razones de seguridad, al menos). No conozco otra forma de que un proceso encuentre el directorio de trabajo de otro proceso.
Como solución alternativa, hay algunos trucos de bash que puedes probar, pero mira la ADVERTENCIA ¡abajo! En .bashrc:
...
PROMPT_COMMAND='pwd >~/.bashlocal_saved_dir'
...
[ -n "$PS1" -a -f ~/.bashlocal_saved_dir ] && cd `cat ~/.bashlocal_saved_dir`
# end of .bashrc
Esto hará dos cosas. Primero, cada vez que bash muestre el indicador, primero escribirá su directorio de trabajo actual en el archivo .bashlocal_saved_dir
en su directorio de inicio. En segundo lugar, cuando bash se inicia de forma interactiva (en lugar de ejecutar un script), cambiará al directorio almacenado en ese mismo archivo. Esto significa que cuando inicie un nuevo bash interactivo, comenzará en el mismo directorio que el bash que mostró su mensaje por última vez. Tenga en cuenta que puede presionar Enter para hacer que un bash vuelva a mostrar su aviso, convirtiéndolo así en el último. :)
ADVERTENCIA :Esto es un truco, y solo lo he probado hasta el punto de que sé que funciona. Piensa en goma de mascar y cordones de zapatos. Puede tener efectos sorprendentes y ciertamente no funcionará tan limpiamente como gnome-terminal
enfoque de . En particular, si está ejecutando muchas pestañas a la vez, todas haciendo tareas en segundo plano, es muy posible que termine en el directorio "equivocado" al abrir una nueva pestaña.