当我在tmux中创建新的窗口/窗格时,例如通过tmux neww或keybindings前缀c,前缀%etc,新窗格获取与前一个窗格相同的工作目录,但在路径中使用解除引用的符号链接.
例如,如果我在
/home/user/my-link/a
my-link – > / mnt / user /,我得到了
/mnt/user/a
将新目录显式传递给tmux也不起作用:
tmux neww -c $(pwd)
我可以禁用这种解除引用吗?我想我可以通过tmux环境变量编写一个解决方法,但我想要一个更清晰的解决方案.
我在Ubuntu 14.04上从repos运行tmux 1.8.
解决方法
无法禁用此行为,似乎甚至无法在tmux(
source)中实现此功能.
在Linux中,始终将进程的工作目录作为实际目录进行跟踪(解析符号链接).您可以通过在目录/ home / user / my-link / a中发出ls -l / proc / self / cwd来看到这一点,它将显示当前工作目录实际上是/ mnt / user / a.原因可能是当进程在该目录中时删除(甚至更改)符号链接时不会遇到麻烦.
shell将您/ home / user / my-link / a作为工作目录显示的功能完全在shell本身中实现.它在pwd环境变量中跟踪它,但tmux无法访问子进程的环境变量.
我发现创建一个新窗口的最简单方法就是你想要的
tmux neww "cd $(pwd); exec $SHELL"