Como excluir uma sessão tmux desanexada?


25

Eu me desliguei de uma sessão tmux:

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

Existe alguma maneira de simplesmente excluí-lo agora que estou desapegado dele?


Relacionado: Se você ainda está conectado a uma sessão do tmux, pode pressionar Cd (control + D) para desanexá-lo e excluí-lo de uma só vez. (Supondo que você está no seu prompt shell.)
stalepretzel

Respostas:


41

Você quer usar 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]

2

Se você deseja excluir todas as sessões desanexadas, pode usar o seguinte código:

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

Essa solução é mais robusta que a proposta pela abieler porque grep -E -v '\(attached\)$'corresponde apenas às sessões desanexadas (a solução pela abieler ignoraria uma sessão desanexada chamada anexada ).


0

Se você deseja matar todas as sessões desanexadas

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

Com comentários / explicação:

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

1
Você pode colocar uma descrição do que você está realmente fazendo aqui? Além disso, isso matará todas as sessões anexadas, observe isso.
djsmiley2k - Cow

@ djsmiley2k Todas as sessões desanexadas que você quer dizer ( -vsinalizador).
Bart Louwers
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.