2개 터미널의 작업 디렉터리를 한 번에 변경

2개 터미널의 작업 디렉터리를 한 번에 변경

나는 일반적으로 gnome-terminal을 열고 약 8개의 탭을 열어 두 개의 연속 탭을 사용하여 동일한 작업을 수행합니다(하나는 emacs, 다른 하나는 git 체크인 및 단위 테스트 실행 등).

작업을 변경할 때 두 탭 모두에서 새 디렉터리로 이동해야 합니다. 가능한 한 몇 단계만으로 두 번째 탭의 작업 디렉터리를 첫 번째 탭의 작업 디렉터리로 변경하려면 어떻게 해야 합니까? 그냥 키보드가 있는게 가장 좋습니다.

답변1

해결 방법은 다음과 같습니다. 한 탭에서 CWD를 임시 파일에 기록하고 다른 탭에서는 방금 저장한 디렉터리로 cd를 기록합니다. 내 .bashrc 또는 .bash_profile에 다음 두 개의 별칭을 추가하겠습니다.

alias ds='pwd > /tmp/cwd'
alias dr='cd "$(</tmp/cwd)"'

ds(dir save) 명령은 CWD를 표시하고 dr(dir recall) 명령은 cd를 표시합니다. C-shell을 사용하여 비슷한 작업을 수행할 수 있습니다.

답변2

터미널 에뮬레이터 사용해보기터미네이터. 여러 셸을 열고 "모두 브로드캐스트" 기능을 사용하여 동일한 명령을 모든 셸에 보낼 수 있습니다.

답변3

당신이 찾고있는 것은 쉘 스크립트를 작성하여 얻을 수 있습니다

xdo 도구

사용할 수 있는 예제 스크립트는 다음과 같습니다.

#!/bin/bash
xdotool type "cd $1
"
xdotool key Ctrl+Next
xdotool type "cd $1
"

답변4

zsh에서는 다음을 수행할 수 있습니다.

  1. 쉘에서 명령을 실행하십시오.
  2. fc -AI해당 쉘에서 실행하십시오.
  3. fc -RI다른 쉘에서 실행하십시오.
  4. 두 번째 셸에서 실행 !!하거나 Up키를 눌러 첫 번째 셸에서 실행된 마지막 명령을 호출합니다.Enter

fc -AI첫 번째 셸의 명령 기록을 기록하고 fc -RI두 번째 셸에서 다시 읽습니다. 이 기능을 켜면 각 명령 후에 inc_append_history동일한 작업이 자동으로 수행됩니다 .fc -AI

이 옵션을 켜면 share_history모든 히스토리 라인이 모든 쉘 인스턴스 간에 자동으로 공유되므로 1단계에서 4단계로 바로 이동할 수 있습니다. 방해가 된다고 느껴질 수도 있습니다.

상대 경로를 사용하여 디렉터리를 변경하는 경우 먼저 절대 경로를 가져와야 합니다. 한 가지 방법은 입력하고 cd $PWD(또는 $PWD해당 auto_cd옵션이 켜져 있는 경우) 확장을 누른 다음 Tab(또는 C-x *일부 완성 설정 사용) $PWD을 누르는 것입니다 Enter.

관련 정보