.screenrc의 대상 대신 심볼릭 링크 소스로 chdir하는 방법

.screenrc의 대상 대신 심볼릭 링크 소스로 chdir하는 방법

screen명령 에 심볼릭 링크를 전달할 chdir때 심볼릭 링크를 역참조하지 않도록 지시하는 방법이 있습니까 ?

내 명령에는 .screenrc다음이 있습니다.

chdir /data/project1
screen -t "project1"
chdir /data/project2
screen -t "project2"

screen를 시작할 때 정기적으로 사용하는 여러 공통 디렉토리에 몇 개의 터미널을 미리 로드한다는 아이디어입니다 .

불행 하게도 거기에 있는 모든 것은 /data내 시스템에 심볼릭 링크가 있으므로 screen위 명령을 사용하여 로드하면 터미널은 원하는 폴더에 들어가려면 터미널에 를 입력 해야 합니다./mnt/remote/server1/long/path/to/project1/data/project1cd /data/project1

내가 사용하는 경로는 길고 변경될 수 있으므로 /data파일을 다른 곳에 재배치할 경우 아무것도 변경할 필요가 없도록 바로가기를 사용하는 습관을 들이는 것을 선호합니다.

대상이 심볼릭 링크인 경우 심볼릭 링크를 역참조하지 않고 해당 디렉토리로 변경하도록 screen알 수 있는 방법이 있습니까 ?chdir

답변1

나는 당신이 거기에서 무슨 일이 일어나고 있는지 오해했다고 생각합니다.

당신이 있을 때

/mnt/remote/server1/long/path/to/project1

쉘과 유형으로

cd /data/project1

그런 다음 디렉터리를 변경하지 않습니다. 쉘에 표시되는 내용만 변경하면 됩니다. 쉘은 논리적 디렉토리 계층과 물리적 디렉토리 계층을 구별합니다. screen(그 외 거의 모든 것) 아니요.

가장 간단한 해결책은 아마도 일부 코드를 추가하는 것입니다 .bashrc(를 사용한다고 가정 bash).

test "$PWD" = '/mnt/remote/server1/long/path/to/project1' && cd /data/project1

관련 정보