Bug ini dilacak di Ubuntu Launchpad dan GNOME Bugzilla.
Karena ini terutama mengganggu saya dengan hanya beberapa direktori, saya menggunakan solusi yang lebih sederhana berikut ini.
Misalkan Anda memiliki /home/username/work
sebagai symlink ke /long/path/named/asdf
. Jadi Anda melakukan cd ~/work
di terminal gnome, buka tab baru, dan temukan terminal yang melaporkan jalur lengkap. Untuk memperbaikinya, cukup masukkan kode berikut di .bashrc
Anda :
cd ${PWD/\/long\/path\/named\/asdf/$HOME\/work}
Ketika gnome-terminal memulai shell baru, ia mendapatkan direktori saat ini dengan $PWD, dan jika berisi /long/path/named/asdf
, itu menggantikan string itu dengan $HOME/work
, dan cd
s ke string yang dihasilkan. Jika $PWD tidak berisi string, itu setara dengan cd $PWD
, yang tidak melakukan apa-apa.
Saya menduga tidak ada jawaban yang benar-benar bagus untuk ini. gnome-terminal
menemukan bash
direktori kerja saat ini dengan memeriksa /proc/<pid>/cwd
, yang symlinknya diperluas (mungkin karena alasan keamanan, jika tidak ada yang lain). Saya tidak tahu cara lain untuk satu proses menemukan direktori kerja proses lain.
Sebagai solusinya, ada beberapa trik bash yang dapat Anda coba, tetapi lihat PERINGATAN di bawah! Di .bashrc:
...
PROMPT_COMMAND='pwd >~/.bashlocal_saved_dir'
...
[ -n "$PS1" -a -f ~/.bashlocal_saved_dir ] && cd `cat ~/.bashlocal_saved_dir`
# end of .bashrc
Ini akan melakukan dua hal. Pertama, setiap kali bash menampilkan prompt, pertama-tama bash akan menulis direktori kerjanya saat ini ke dalam file .bashlocal_saved_dir
di direktori home Anda. Kedua, ketika bash dimulai secara interaktif (berlawanan dengan menjalankan skrip), bash akan berubah ke direktori yang disimpan dalam file yang sama. Ini berarti bahwa ketika Anda memulai bash interaktif baru, itu akan dimulai di dir yang sama dengan bash yang terakhir menampilkan promptnya. Perhatikan bahwa Anda dapat menekan Enter untuk menyebabkan bash menampilkan ulang promptnya, sehingga menjadikannya yang terakhir. :)
PERINGATAN :Ini adalah retasan, dan saya hanya mencobanya sampai saya tahu itu berhasil. Pikirkan permen karet dan tali sepatu. Ini mungkin memiliki efek yang mengejutkan, dan tentunya tidak akan berfungsi sebersih gnome-terminal
pendekatan. Secara khusus, jika Anda menjalankan banyak tab sekaligus, semuanya melakukan tugas latar belakang, Anda mungkin berakhir di direktori yang "salah" saat membuka tab baru.