如果你想终止所有分离的会话

如果你想终止所有分离的会话

我脱离了 tmux 会话:

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

既然我已经与它脱离关系了,有什么办法可以简单地删除它吗?

答案1

您想要使用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

如果你想删除全部分离会话你可以使用以下代码:

tmux list-sessions -F '#{session_attached} #{session_id}' | \
  awk '/^0/{print $2}' | \
  xargs -n 1 tmux kill-session -t

此解决方案比 abieler 提出的解决方案更强大,因为它按 ID 匹配所有分离会话,而不管它们的名称是什么(abieler 的解决方案将跳过名为随附的)。

答案3

如果你想终止所有分离的会话

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

附有评论/解释:

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

答案4

如果你想终止所有分离的会话

tmux ls | awk '{print $1}'|sed 's/.$//'| xargs -t -n1 tmux kill-session -t

相关内容