Я подозреваю, что нет действительно хороший ответ на это. gnome-terminal
находит bash
' s текущий рабочий каталог, проверяя /proc/<pid>/cwd
, который имеет расширенные символические ссылки (вероятно, по соображениям безопасности, если ничего другого). Я не знаю другого способа для одного процесса найти рабочий каталог другого процесса.
в качестве обходного пути, есть некоторые трюки Баш вы могли бы попробовать, но увидеть предупреждение ниже! В. bashrc:
...
PROMPT_COMMAND='pwd >~/.bashlocal_saved_dir'
...
[ -n "$PS1" -a -f ~/.bashlocal_saved_dir ] && cd `cat ~/.bashlocal_saved_dir`
# end of .bashrc
это будет делать две вещи. Во-первых, каждый раз, когда bash отображает приглашение, он сначала записывает свой текущий рабочий каталог в файл .bashlocal_saved_dir
в вашем домашнем каталоге. Во-вторых, когда bash запускается в интерактивном режиме (в отличие от запуска скрипта), он изменится на каталог, хранящийся в том же файле. Это означает, что при запуске нового интерактивного bash он будет запускаться в том же каталоге, что и bash, в котором последний раз отображался запрос. Обратите внимание, что вы можете нажать Enter, чтобы заставить bash повторно отобразить его приглашение, сделав его последним. :)
предупреждение: это хак, и я только попробовал его до такой степени, что я знаю, что это работает. Подумайте жвачку и шнурки. Это может иметь удивительные эффекты, и, конечно,не будет работать так чисто, какgnome-terminal
'ы подход. В частности, если вы запускаете много вкладок сразу, все выполняют фоновые задачи, вы можете очень хорошо оказаться в" неправильном " каталоге при открытии новой вкладки.