tmux一次杀了很多窗户

时间:2012-08-22 15:11:40

标签: unix tmux

我的tmux会话中打开了大量的窗口,我想要杀掉75%的窗口。有没有办法一次杀死多个窗口,而不是去每个窗口并单独杀死它?

1 个答案:

答案 0 :(得分:4)

我认为tmux内部不支持此功能,但您可以编写脚本。

首先创建一个测试会话来处理:

tmux new -s test
repeat 9;        do tmux new-window -t test; done    # in zsh
for i in {1..9}; do tmux new-window -t test; done    # in bash

现在为窗户杀人:

# number of windows in test session
nwin=$(tmux list-windows -t test | wc -l)

# number of windows to kill
nkill=$(echo "$nwin * .75" | bc -l | cut -d. -f1)

tmux list-windows -t test | cut -d: -f1 | head -n$nkill \
| while read; do
    tmux kill-window -t test:$REPLY
  done

这是一种相当灵活的方法,你应该能够grep -v任何你想要保留的窗口,或者相反grep你要杀死的窗口。