Выполнить cd в двух окнах с помощью одной команды

Я использовал iTerm2. Я часто разбивал панель на два окна. Когда я хочу изменить каталог в одном, я хочу также автоматически изменить каталог в другом. Это возможно? Также будет приветствоваться решение Tmux.

  • Tmux отображение котировок / сообщений при запуске
  • Запуск скрипта через bashrc вызывает вложенность панелей tmux
  • Окно Vim в Tmux
  • gnome-terminal: небольшой зазор в правой части экрана (Ubuntu)
  • Выход Tmux медленнее, когда существуют вертикальные расщепления: почему?
  • Не удалось скопировать из tmux (2.4+) в буфер обмена OS X
  • tmux с большим количеством терминалов, чем панели
  • Как безопасно завершить Aptitude
  • One Solution collect form web for “Выполнить cd в двух окнах с помощью одной команды”

    Я еще не использовал tmux, поэтому могут быть лучшие способы сделать это. Этот ответ также bash-centric, так как это оболочка, с которой я больше всего знаком. Я уверен, что у других снарядов есть аналогичные концепции, к которым это можно было бы адаптировать.

    Основная идея заключается в том, чтобы исходный исходный текст окна был сценарием, который устанавливает функцию, которая вызывается непосредственно перед отображением нового приглашения оболочки; второе окно будет генерировать отдельный второй скрипт. Функция первого скрипта обновляет переменную tmux TMUX_PWD всякий раз, когда изменяется текущий каталог. Функция второго скрипта проверяет переменную TMUX_PWD и изменяет каталог, если его текущий каталог отличается.

    Код основного окна:

     function prompt_command_primary { if [[ "$(tmux showenv TMUX_PWD | cut -d= -f2)" != "$PWD" ]] then tmux setenv TMUX_PWD "$PWD" fi } PROMPT_COMMAND='prompt_command_primary' # initialize it tmux setenv TMUX_PWD "$PWD" 

    Код для вторичного окна:

     function prompt_command_mirror { if [[ $(tmux showenv TMUX_PWD | cut -d= -f2) != "$PWD" ]] then cd -- "$(tmux showenv TMUX_PWD | cut -d= -f2)" fi } PROMPT_COMMAND='prompt_command_mirror' # initialize ourselves prompt_command_mirror 

    Мне показалось, что это самый изящный способ иметь второй каталог изменений окна, основанный на первом окне.

    Linux и Unix - лучшая ОС в мире.