tmuxで保存したセッションを間違って上書きしてしまった場合

通常tmuxのwindowやpaneの内容はtmux serverをkillしてしまうと消えてしまう。そのためPCの再起動などかける場合は消えてしまうのだが、tmux-resurrectというプラグインを利用することでディスクに内容を保存しておいて復旧することができる。

さきほどPCを再起動してtmuxを起動してセッションを復旧させようとした際、間違って保存用のコマンドを実行してしまった。やってしまった、、と思ったのだが考えてみればディスクに履歴くらい残ってるのでは?と思いちょっと探ってみた簡単に元に戻せたのでメモしておく。

セッション保存の際に履歴が保存される場所

$ ls  ~/.tmux/resurrect    
last                                    
...
tmux_resurrect_2022-02-18T21:52:05.txt

途中省略したがこのPCを使い始めた頃の日付のファイルもあったので保存したものがすべて残っている模様。

ちなみに中身は各windowやpaneの名前やカレントディレクトリ、サイズなどがざっと書いてあるだけでサイズはとても小さい。

lastというファイルがシンボリックリンクになっていて最新の日付のものを指していたので、以下のように一度消してから復旧したい日付のものに貼り直す。

$ cd ~/.tmux/resurrect
$ rm last
$ ln -s <復旧したい日付のtxt> last

これでもう一度セッション復旧を行うと無事上書き前の状態が復元できた。簡単。