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

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

  • tmux: как связать ключ для запуска команды оболочки?
  • Как добавить подсказку подтверждения tmux, когда я убью окно?
  • Как отправить ключ для выхода из режима прокрутки в tmux?
  • Tmux создать окно, если оно еще не существует
  • Обеспечить постоянную работу службы systemd
  • выйти из окна tmux без выхода из программы терминала
  • Есть ли способ переопределить навигационные клавиши для режима копирования tmux?
  • Как предотвратить закрытие терминала при запуске программы с завершением?
  • 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 - лучшая ОС в мире.