Как chdir для ссылки источника, а не цели в .screenrc

Есть ли способ показать 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/project1 . Я должен ввести cd /data/project1 в терминал, чтобы попасть в нужную папку.

Поскольку пути, которые я использую, очень длинны и могут меняться, я предпочитаю привыкнуть использовать мои /data ярлыки /data чтобы мне не приходилось менять какие-либо привычки, если я перемещаю файлы в другом месте.

Есть ли способ сказать, что при использовании chdir и target символическая ссылка, а не разыгрывать символическую ссылку и просто менять ее в любом каталоге?

Наверное, вы просто не понимаете, что там происходит.

Когда вы находитесь

 /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