如何 chdir 到符号链接源而不是 .screenrc 中的目标

如何 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快捷方式的习惯,这样如果我将文件重新定位到其他地方,我就不必改变任何习惯。

有没有什么方法可以告诉screen我们,当使用chdir并且目标是符号链接时,不要取消引用符号链接并只是更改为该目录?

答案1

我猜你只是误解了那里发生的事情。

当你在

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

与你的外壳和类型

cd /data/project1

那么你就不要改变目录。您只需更改 shell 显示的内容即可。 shell 区分逻辑目录层次结构和物理目录层次结构。screen(以及或多或少的其他一切)没有。

最简单的解决方案可能是添加一些代码.bashrc(假设您使用bash):

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

相关内容