วิธีการลบเซสชั่น tmux เดี่ยว ๆ ?


25

ฉันแยกตัวจากเซสชั่น tmux:

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

มีอยู่ฉันสามารถลบออกตอนที่ฉันถูกถอดออกได้หรือไม่


ที่เกี่ยวข้อง: หากคุณยังคงเชื่อมต่อกับเซสชั่น tmux คุณสามารถกด Cd (control + D) เพื่อแยกออกจากมันและลบออกในคราวเดียว (สมมติว่าคุณอยู่ในสถานะพร้อมให้เชลล์ของคุณ)
stalepretzel

คำตอบ:


41

คุณต้องการใช้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 | grep -E -v '\(attached\)$' | while IFS='\n' read line; do
    tmux kill-session -t "${line%%:*}"
done

โซลูชันนี้มีประสิทธิภาพมากกว่าที่เสนอโดย abieler เนื่องจากgrep -E -v '\(attached\)$'จับคู่เฉพาะเซสชันที่แยกออกมา (โซลูชันของ abieler จะข้ามเซสชันที่แยกออกที่เรียกว่าแนบมา )


0

หากคุณต้องการฆ่าเซสชันเดี่ยวทั้งหมด

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

1
คุณช่วยอธิบายสิ่งที่คุณกำลังทำอยู่ที่นี่ได้ไหม? นอกจากนี้สิ่งนี้จะฆ่าเซสชันที่แนบมาทั้งหมดคุณควรทราบสิ่งนี้
djsmiley2k - CoW

@ djsmiley2k เซสชันเดี่ยวทั้งหมดที่คุณหมายถึง ( -vตั้งค่าสถานะ)
บาร์ต Louwers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.