我使用“tmx”创建了一个名为“foos”的 tmux 会话,现在我想创建一个名为“foo”的新会话,其中后者是前者的前缀。但 tmux 将我连接到现有会话。
我想直接创建指定的会话。更好的是,我想在所有上下文中处理会话时将“tmx”从前缀匹配切换为精确匹配。
我的“tmx”脚本中有很多内容,但我认为相关部分是:
if tmux has-session -t "${name}" &> /dev/null; then
exec env SSH_AUTH_SOCK="${d}/${s}" ${f} tmux "${args[@]}" attach-session -t "${name}"
else
exec env SSH_AUTH_SOCK="${d}/${s}" ${f} tmux "${args[@]}" new-session -s "${name}"
fi
答案1
target-session
按顺序尝试:
- 以 . 为前缀的会话 ID
$
。- 会话的确切名称(如
list-sessions
命令所列出)。- 例如,会话名称的开头
mysess
将匹配名为 的会话mysession
。fnmatch(3)
与会话名称匹配的模式。
所以这是设计使然:如果没有精确匹配,就会出现不太精确的匹配。除非……
如果会话名称以 为前缀
=
,则仅接受完全匹配(因此=mysess
只会完全匹配mysess
,而不是mysession
)。
解决办法:-t "=${name}"
适当使用。