El tmux attach
comando actúa más como una combinación de screen -r
y screen -x
, primero, trata de adjuntarse a la sesión desconectada más recientemente y luego, si no hay ninguna disponible, se adjuntará a una sesión adjunta actualmente. Quiero emular el comportamiento de screen -R
: primero intente adjuntar a una sesión separada, luego comience una nueva sesión si no hubo sesiones separadas. ¿Cuál es la mejor manera de lograr esto en tmux?
10
(tmux ls 2>/dev/null | grep -vq attached && tmux at) || tmux
A pesar de lo que dice en el manual de tmux:
La respuesta de Drew no funcionará correctamente en una situación como:
tmux at
se adjuntará a la última sesión (# 1) (a pesar de que esta sesión todavía está adjunta en otro lugar). Esto arruina la idea de ejecutar varias sesiones de tmux y conectarlas solo a una separada (para usar mosh + tmux + iterm2 para crear un terminal de itinerancia perfecto).Otro enfoque sería seleccionar manualmente una sesión no adjunta:
tmux ls | grep -vq attached && tmux at `tmux ls | grep -vm1 attached | cut -d: -f1`
fuente
Tiendo a tener solo dos sesiones tmux a la vez, así que hago algo como esto en cada ventana de terminal.
ventana de terminal 0:
ventana de terminal 1:
fuente
Esto ha funcionado mejor para mí:
El -t es necesario para adjuntar a la sesión adecuada.
fuente
Qué pasa
o simplemente cree el archivo
~/.tmux.conf
si no existe y agreguepara que cree una nueva sesión cuando no hay ninguna cuando se ejecuta
tmux attach
.También podría ser útil hacer
tmux
un aliastmux attach
.fuente