Questo bug viene monitorato su Ubuntu Launchpad e GNOME Bugzilla.
Poiché questo mi infastidisce principalmente con solo poche directory, utilizzo la seguente soluzione alternativa più semplice.
Supponi di avere /home/username/work
come collegamento simbolico a /long/path/named/asdf
. Quindi fai cd ~/work
in gnome-terminal, apri una nuova scheda e trova il terminale che riporta il percorso completo. Per risolvere questo problema, inserisci quanto segue nel tuo .bashrc
:
cd ${PWD/\/long\/path\/named\/asdf/$HOME\/work}
Quando gnome-terminal avvia una nuova shell, ottiene la directory corrente con $PWD e se contiene /long/path/named/asdf
, sostituisce quella stringa con $HOME/work
e cd
s alla stringa risultante. Se $PWD non contiene la stringa, equivale a cd $PWD
, che non fa nulla.
Sospetto che non ci sia una risposta veramente buona a questo. gnome-terminal
trova bash
l'attuale directory di lavoro ispezionando /proc/<pid>/cwd
, che ha ampliato i collegamenti simbolici (probabilmente per motivi di sicurezza, se non altro). Non conosco un altro modo per un processo di trovare la directory di lavoro di un altro processo.
Per ovviare al problema, ci sono alcuni trucchi bash che potresti provare, ma vedi ATTENZIONE sotto! In .bashrc:
...
PROMPT_COMMAND='pwd >~/.bashlocal_saved_dir'
...
[ -n "$PS1" -a -f ~/.bashlocal_saved_dir ] && cd `cat ~/.bashlocal_saved_dir`
# end of .bashrc
Questo farà due cose. Innanzitutto, ogni volta che bash visualizza il prompt, scriverà prima la sua attuale directory di lavoro nel file .bashlocal_saved_dir
nella tua home directory. In secondo luogo, quando bash si avvia in modo interattivo (invece di eseguire uno script), passerà alla directory memorizzata nello stesso file. Ciò significa che quando avvii una nuova bash interattiva, verrà avviata nella stessa directory della bash che ha visualizzato per ultima il suo prompt. Nota che puoi premere Invio per fare in modo che una bash visualizzi nuovamente il suo prompt, rendendolo così l'ultimo. :)
ATTENZIONE :Questo è un hack, e l'ho provato solo fino al punto in cui so che funziona. Pensa alla gomma da masticare e ai pochi soldi. Potrebbe avere effetti sorprendenti e certamente non funzionerà in modo pulito come gnome-terminal
l'approccio di. In particolare, se stai eseguendo molte schede contemporaneamente, tutte eseguendo attività in background, potresti benissimo finire nella directory "sbagliata" quando apri una nuova scheda.