Bagaimana cara menghapus sesi tmux terpisah?

25

Saya melepaskan diri dari sesi tmux:

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

Apakah ada lagi yang bisa saya hapus sekarang setelah saya terlepas dari itu?

pengguna784637
sumber
Terkait: Jika Anda masih terikat pada sesi tmux, Anda dapat menekan Cd (control + D) untuk melepaskannya dan menghapusnya dalam sekali gerakan. (Dengan asumsi Anda berada di prompt shell Anda.)
stalepretzel

Jawaban:

41

Anda ingin menggunakan 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]
Joe Casadonte
sumber
2

Jika Anda ingin menghapus semua sesi yang terpisah, Anda dapat menggunakan kode berikut:

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

Solusi ini lebih kuat daripada yang diusulkan oleh Abieler karena grep -E -v '\(attached\)$'hanya cocok dengan sesi terpisah (solusi oleh Abieler akan melewati sesi terpisah yang disebut terlampir ).

Mateusz Piotrowski
sumber
0

Jika Anda ingin membunuh semua sesi yang terpisah

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

Dengan komentar / penjelasan:

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
abieler
sumber
1
Bisakah Anda memberikan deskripsi tentang apa yang sebenarnya Anda lakukan di sini? Juga, ini akan membunuh semua sesi terlampir, Anda harus perhatikan ini.
djsmiley2k
@ djsmiley2k Semua sesi yang Anda maksud ( -vflag).
Bart Louwers