Пару месяцев назад, при работе над одним крупным проектом в Linux мне постоянно требовалось переходить в терминале в один и тот же каталог. Это легко выполняется с помощью команды cd. Но путь к нужному каталогу был очень длинным и постоянно вбивать его полностью мне быстро надоело.
Программа GNOME Commander позволяет открыть эмулятор терминала в текущем каталоге. Но она запускает xterm, а мне нужен gnome-terminal. Я решил написать скрипт использующий команду cd. Получилось что-то вида:
#!/bin/bash cd ДЛИННЫЙ_ПУТЬ_К_КАТАЛОГУ
Но это не дало нужного эффекта. Проблема в том, что команда cd запускалась в отдельном процессе, поэтому она никак не изменяла положение текущего эмулятора. Тогда я вспомнил про символические ссылки и попробовал решить свою задачу с помощью них. Но у них обнаружилось поведение, которое меня не устраивало (описано в посте). Поэтому они не подходили.
Запуск эмулятора терминала может быть осуществлен скриптом:
#!/bin/bash gnome-terminal
Он запускает нужный эмулятор терминала, но тот открывается в домашнем каталоге. Как заставить его открыться в нужном мне каталоге? Оказывается, для этого используется ключ —working-directory. Финальная версия скрипта выглядит так:
#!/bin/bash gnome-terminal --working-directory="ДЛИННЫЙ_ПУТЬ_К_КАТАЛОГУ"
Конечно, теперь приходится каждый раз вбивать команду запуска скрипта, но она намного короче, чем полный путь к открываемому каталогу.