Como excluir uma sessão do tmux desanexada?

21

Eu me separei de uma sessão do tmux:

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

Existe alguma maneira que eu possa simplesmente deletá-lo agora que estou separado dele?

    
por user784637 23.08.2013 / 21:31

3 respostas

37

Você deseja 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]
    
por 24.08.2013 / 22:49
2

Se você quiser excluir todas as sessões desanexadas, use o seguinte código:

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

Esta solução é mais robusta do que a proposta pelo abieler porque grep -E -v '\(attached\)$' combina apenas com as sessões separadas (a solução de abieler pula uma sessão separada chamada anexada ).

    
por 16.09.2017 / 20:06
0

Se você quiser matar todas as sessões desconectadas

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

Com comentários / explicações:

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
    
por 05.04.2017 / 11:06

Tags