Jak usunąć odłączoną sesję Tmux?

25

Odłączyłem się od sesji tmux:

$ tmux ls
0: 1 windows (created Thu Aug 22 22:52:17 2013) [218x59]

Czy jest coś, co mogę po prostu usunąć teraz, kiedy jestem od niego odłączony?

użytkownik784637
źródło
Powiązane: Jeśli nadal jesteś przywiązany do sesji tmux, możesz nacisnąć Cd (control + D), aby się od niej odłączyć i usunąć za jednym zamachem. (Zakładając, że masz monit o powłokę.)
czerstwypretzel

Odpowiedzi:

41

Chcesz użyć tmux kill-session:

<~> $ tmux ls
0: 1 windows (created Sat Aug 17 00:03:56 2013) [80x23]
2: 1 windows (created Sat Aug 24 16:47:58 2013) [120x34]

<~> $ tmux kill-session -t 2

<~> $ tmux ls
0: 1 windows (created Sat Aug 17 00:03:56 2013) [80x23]
Joe Casadonte
źródło
2

Jeśli chcesz usunąć wszystkie odłączone sesje, możesz użyć następującego kodu:

tmux list-sessions | grep -E -v '\(attached\)$' | while IFS='\n' read line; do
    tmux kill-session -t "${line%%:*}"
done

To rozwiązanie jest bardziej niezawodne niż to zaproponowane przez abieler, ponieważ grep -E -v '\(attached\)$'pasuje tylko do odłączonych sesji (rozwiązanie abieler pomija odłączoną sesję zwaną załączoną ).

Mateusz Piotrowski
źródło
0

Jeśli chcesz zabić wszystkie odłączone sesje

tmux list-sessions | grep -v attached | cut -d: -f1 |  xargs -t -n1 tmux kill-session -t

Z komentarzami / objaśnieniami:

tmux list-sessions   | # list all tmux sessions
  grep -v attached   | # grep for all lines that do NOT contain the pattern "attached"
  cut -d: -f1        | # cut with the separator ":" and select field 1 (the session name)
  xargs -t -n1       ` # -t echoes the command, -n1 limits xargs to 1 argument ` \
  tmux kill-session -t # kill session with target -t passed from xargs
abieler
źródło
1
Czy możesz podać opis tego, co tu właściwie robisz? To także zabije wszystkie dołączone sesje, należy to zauważyć.
djsmiley2k - CoW
@ djsmiley2k Masz na myśli wszystkie odłączone sesje ( -vflaga).
Bart Louwers,