`cd` 모든 화면의 PWD를 현재 화면으로

`cd` 모든 화면의 PWD를 현재 화면으로

screen4개의 열린 화면이 있는 원격 서버에서 실행 중이라고 가정해 보겠습니다 . cd모든 화면을 현재 열려 있는 화면의 작업 디렉터리로 빠르게 이동할 수 있는 방법이 있습니까 ?

답변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

대답은 기본적으로 "아니요"입니다. 각 화면에서 실행되는 각 프로그램은 자체 작업 디렉토리가 있는 별도의 프로세스입니다. 다른 프로세스의 작업 디렉터리는 변경할 수 없습니다. 프로세스는 자신의 작업 디렉터리만 변경할 수 있습니다.

즉, 해결책은카이우 당신에게 지적하세요작동합니다. 기본적으로 작업 디렉터리를 파일에 저장한 다음 각 창으로 이동하여 다른 명령을 실행하여 해당 파일을 읽고 이를 기반으로 현재 작업 디렉터리를 설정해야 합니다.

PROMPT_COMMAND파일 내용이 변경되면 작업 디렉터리를 자동으로 변경하기 위해 몇 가지 추악한 트릭을 사용할 수 있습니다 . bash그러나 이는 하나 이상의 명령을 실행할 때까지 적용되지 않습니다.

아마도 이 동작을 원하는 이유를 제시하면 문제에 대한 해결책이 제공될 수 있습니다.

관련 정보