我的tmux会话中打开了大量的窗口,我想要杀掉75%的窗口。有没有办法一次杀死多个窗口,而不是去每个窗口并单独杀死它?
答案 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
你要杀死的窗口。