Я впечатлен
Комментарий Нейла Мэйхью
а также
Ответ Зигеля Фолькера . Я пытался не только установить каталог по умолчанию для
gnome-терминал , но также сохраняет привычное поведение рабочего стола (я использую Linux Mint 17.1 Cinnamon ,
GNOME Terminal 3.6.2 , возможно, его также можно применять для других DE, связанных с Gnome). Итак, позвольте мне положить мои два цента.
Добавление cd ~/myfolder
в самом конце ~/.bashrc
делает работу. Но, как уже упоминалось, это повлияет на каждый
интерактивная оболочка. Более того, если вы откроете какой-нибудь каталог в файловом менеджере ( Nemo или Nautilus или что-то вроде
это) и обратитесь к контекстному меню оттуда (например, щелкните правой кнопкой мыши и выберите Открыть в терминале ) новый экземпляр
gnome-терминал будет запущен в ~/myfolder
независимо от папки, которая была загружена в файловый менеджер.
Даже если вы явно запустите gnome-terminal --working-directory=/some/other/folder
, он все равно откроет ~/myfolder
. Кажется, что
сближение с .bashrc
неприменимо.
gnome-terminal --working-directory=myfolder
работает нормально, но только когда вы используете пользовательский пункт меню в вашем DE
(или пользовательский ярлык на рабочем столе), который запускает терминал с этим параметром. Если вы хотите запустить gnome-терминал из командной строки
или из мини-лаунчера (нажмите Alt + F2 ), вы должны вводить параметр каждый раз. В любом случае, этот подход более или менее применим.
Как gnome-терминал определяет, какую папку открывать? Когда --working-directory
не указан, он открывает текущий
рабочий каталог (например, $PWD
), в противном случае он открывает каталог, указанный явно.
Я нашел следующее решение.
Создайте файл с именем gnome-terminal
в папке ~/bin
. Это будет действовать как ярлык, но отовсюду (меню «Пуск»,
мини-лаунчер, другой экземпляр терминала и т. д.), поскольку ~/bin
уже находится в $PATH
(по крайней мере, в Linux Mint ...). Сделать этот файл
исполняемый файл. Затем поместите в скрипт следующий контент:
#!/bin/bash
home_directory=~
if [ "$PWD" == "$home_directory" ]; then
# When 'gnome-terminal' was ran from either
# - start menu
# - mini-launcher
# ...
# parent directory is set to $HOME.
#
# We respect original command line arguments.
# For example, when terminal is ran from another
# terminal instance and '--working-directory' is
# specified explicitly we should left it as it is.
# If there are two '--working-directory' switches
# in the command line 'gnome-terminal' will pick up
# the last one.
#
# Also we use full path to executable here in order
# to prevent recursive calling of 'gnome-terminal' from
# '~/bin'.
/usr/bin/gnome-terminal --working-directory=/ "$@"
else
# 'gnome-terminal' was from another directory.
# We don't change anything.
/usr/bin/gnome-terminal "$@"
fi
Если вы запустите gnome-терминал из меню «Пуск», вы увидите, что текущая папка в новом терминале - /
(вы можете использовать любую папку, например, ~/myfolder
, потому что наша пользовательская оболочка является Bash-скрипт, так что расширение оболочки работает нормально).
Если вы обращаетесь к Открыть в Терминале в файловом менеджере, вы получите текущий каталог в новом терминале.
Если вы запустите gnome-terminal с явным параметром --working-directory
(возможно, из существующего экземпляра терминала), новый экземпляр терминала будет открыт в указанной вами директории.