tmux 更改会话的默认工作目录而不附加

tmux 更改会话的默认工作目录而不附加

我正在寻找一种方法来做这样的事情没有附加到会话。

tmux attach-session -c <directory> -t <session>
                    ^^^^^^^^^^^^^^

Per tmux(1),没有办法在不附加到整个会话的情况下更改默认工作目录(新窗口和新窗格)。

我无法附加到会话,因为我在一些自动化脚本中执行此操作,其中附加会破坏自动化。

答案1

`tmux send-keys -t <session> 'cd <directory>'`

做你想做的事?

不确定这是否适用于此后创建的新窗口/窗格,但穷人的解决方法只是<session>:<windowID>.<paneID>在创建该窗口/窗格后将其发送到。

答案2

您可以简单地

tmux attach -c directory -t session 2> /dev/null &

由于分叉的后台作业不是终端,因此附加将立即退出。但它将成功更改 tmux 会话的工作目录。

编辑:我纠正-s了,-t但这个技巧在 tmux 3.1b 中似乎不再起作用了。

相关内容