{"id":774,"date":"2025-10-10T11:31:12","date_gmt":"2025-10-10T03:31:12","guid":{"rendered":"https:\/\/play.datalude.com\/blog\/?p=774"},"modified":"2026-04-22T15:57:39","modified_gmt":"2026-04-22T07:57:39","slug":"copy-tmux-scroll-buffer-to-a-file","status":"publish","type":"post","link":"https:\/\/play.datalude.com\/blog\/2025\/10\/copy-tmux-scroll-buffer-to-a-file\/","title":{"rendered":"Copy tmux Scroll Buffer to a File"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">tmux is super handy for long running commands. Especially if you have a dodgy connection which is likely to break: the command will keep running and you can re-attach to the session to save the day.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But as a dyed-in-the-wool bash user, I've kinda got used to being able to scroll up and down my command history and copy items from there. But I always have to search the internet the exact commands I need in tmux. Here's an easy way to dump the whole tmux history buffer to a text file without complicated edit\/scroll\/copy start\/copy end combinations. We'll assume your tmux prefix key is the default CTRL-B<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># default prefix key and colon. opens the command pane, at the bottom\nCTRL-B  : \n# send whole history to tmux buffer\ncapture-pane -S -       \n# get ready for another command, tmux\nCTRL-B   : \n<code># self explanatory<\/code><code>save-buffer ~\/tmux_output.txt       <\/code> <\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Now you can use your text editor to look at the command history, alerts, and outputs. I had to use this recently when I piped a long running script through tee -a but it failed to send any of the screen output to the specified text file. This was a lifesaver.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>tmux is super handy for long running commands. Especially if you have a dodgy connection which is likely to break: the command will keep running and you can re-attach to the session to save the day. But as a dyed-in-the-wool bash user, I've kinda got used to being able to scroll up and down my &#8230; <a title=\"Copy tmux Scroll Buffer to a File\" class=\"read-more\" href=\"https:\/\/play.datalude.com\/blog\/2025\/10\/copy-tmux-scroll-buffer-to-a-file\/\" aria-label=\"Read more about Copy tmux Scroll Buffer to a File\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAAHye7n2h2NAYsBCIQBvBeAAYwCDgIIAgQDAQyIAQIWAwCiAgIKiAEokgsIAgECCgJCSgCiBgECCgJCSgCCDQECCgIULBYCGgIoAgYCDAIgKIYBBBamAgKSASjKCgCeCgECCgJCStwKigEYqgO6DfgK0gYAihH6OBEABJQBApA3AIYHBMQQuhABAQgASPo+AwCkAgqwDCWUQxiqAwCCA8QIsgGsE+IC+jgRAASUAQKILLwRAQDuPQMApAIKeygDJwAEACcABACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhASBAIQCgQCEACcAKAYnACgCJwAHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEAIQUJwCHACgDJwEEACgAJwAoAagAxAREAMQMhwAoAicBKAAnAMQEhLgcoxtzdGF0ZXZlcnNpb25kb2N1bWVudGRhdGVkb2N1bWVudHNsdWdkb2N1bWVudHN0YXR1c2RvY3VtZW50dGl0bGVDb3B5IHRtdXggU2Nyb2xsIEJ1ZmZlciB0byBhIEZpbGVkb2N1bWVudGNvbnRlbnQ8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+dG11eCBpcyBzdXBlciBoYW5keSBmb3IgbG9uZyBydW5uaW5nIGNvbW1hbmRzLiBFc3BlY2lhbGx5IGlmIHlvdSBoYXZlIGEgZG9kZ3kgY29ubmVjdGlvbiB3aGljaCBpcyBsaWtlbHkgdG8gYnJlYWs6IHRoZSBjb21tYW5kIHdpbGwga2VlcCBydW5uaW5nIGFuZCB5b3UgY2FuIHJlLWF0dGFjaCB0byB0aGUgc2Vzc2lvbiB0byBzYXZlIHRoZSBkYXkuICA8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5CdXQgYXMgYSBkeWVkLWluLXRoZS13b29sIGJhc2ggdXNlciwgSSd2ZSBraW5kYSBnb3QgdXNlZCB0byBiZWluZyBhYmxlIHRvIHNjcm9sbCB1cCBhbmQgZG93biBteSBjb21tYW5kIGhpc3RvcnkgYW5kIGNvcHkgaXRlbXMgZnJvbSB0aGVyZS4gQnV0IEkgYWx3YXlzIGhhdmUgdG8gc2VhcmNoIHRoZSBpbnRlcm5ldCB0aGUgZXhhY3QgY29tbWFuZHMgSSBuZWVkIGluIHRtdXguIEhlcmUncyBhbiBlYXN5IHdheSB0byBkdW1wIHRoZSB3aG9sZSB0bXV4IGhpc3RvcnkgYnVmZmVyIHRvIGEgdGV4dCBmaWxlIHdpdGhvdXQgY29tcGxpY2F0ZWQgZWRpdC9zY3JvbGwvY29weSBzdGFydC9jb3B5IGVuZCBjb21iaW5hdGlvbnMuIFdlJ2xsIGFzc3VtZSB5b3VyIHRtdXggcHJlZml4IGtleSBpcyB0aGUgZGVmYXVsdCBDVFJMLUI8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6Y29kZSAtLT4KPHByZSBjbGFzcz0id3AtYmxvY2stY29kZSI+PGNvZGU+IyBkZWZhdWx0IHByZWZpeCBrZXkgYW5kIGNvbG9uLiBvcGVucyB0aGUgY29tbWFuZCBwYW5lLCBhdCB0aGUgYm90dG9tCi0gICAjIHNlbmQgd2hvbGUgaGlzdG9yeSB0byB0bXV4IGJ1ZmZlcgoKQ1RSTC1CICAgOiAgIDxjb2RlPnNhdmUtYnVmZmVyIH4vdG11eF9vdXRwdXQudHh0ICAgICAgIDwvY29kZT4gPC9jb2RlPjwvcHJlPgo8IS0tIC93cDpjb2RlIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPk5vdyB5b3UgY2FuIHVzZSB5b3VyIHRleHQgZWRpdG9yIHRvIGxvb2sgYXQgdGhlIGNvbW1hbmQgaGlzdG9yeSwgYWxlcnRzLCBhbmQgb3V0cHV0cy4gSSBoYWQgdG8gdXNlIHRoaXMgcmVjZW50bHkgd2hlbiBJIHBpcGVkIGEgbG9uZyBydW5uaW5nIHNjcmlwdCB0aHJvdWdoIHRlZSAtYSBidXQgaXQgZmFpbGVkIHRvIHNlbmQgYW55IG9mIHRoZSBzY3JlZW4gb3V0cHV0IHRvIHRoZSBzcGVjaWZpZWQgdGV4dCBmaWxlLiBUaGlzIHdhcyBhIGxpZmVzYXZlci48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT5kb2N1bWVudGV4Y2VycHRkb2N1bWVudGF1dGhvcmRvY3VtZW50ZmVhdHVyZWRfbWVkaWFkb2N1bWVudGNvbW1lbnRfc3RhdHVzZG9jdW1lbnRwaW5nX3N0YXR1c2RvY3VtZW50c3RpY2t5ZG9jdW1lbnR0ZW1wbGF0ZWRvY3VtZW50Zm9ybWF0ZG9jdW1lbnRtZXRhZm9vdG5vdGVzZG9jdW1lbnRjYXRlZ29yaWVzZG9jdW1lbnR0YWdzZG9jdW1lbnRibG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnR0bXV4IGlzIHN1cGVyIGhhbmR5IGZvciBsb25nIHJ1bm5pbmcgY29tbWFuZHMuIEVzcGVjaWFsbHkgaWYgeW91IGhhdmUgYSBkb2RneSBjb25uZWN0aW9uIHdoaWNoIGlzIGxpa2VseSB0byBicmVhazogdGhlIGNvbW1hbmQgd2lsbCBrZWVwIHJ1bm5pbmcgYW5kIHlvdSBjYW4gcmUtYXR0YWNoIHRvIHRoZSBzZXNzaW9uIHRvIHNhdmUgdGhlIGRheS4gIGRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudEJ1dCBhcyBhIGR5ZWQtaW4tdGhlLXdvb2wgYmFzaCB1c2VyLCBJJ3ZlIGtpbmRhIGdvdCB1c2VkIHRvIGJlaW5nIGFibGUgdG8gc2Nyb2xsIHVwIGFuZCBkb3duIG15IGNvbW1hbmQgaGlzdG9yeSBhbmQgY29weSBpdGVtcyBmcm9tIHRoZXJlLiBCdXQgSSBhbHdheXMgaGF2ZSB0byBzZWFyY2ggdGhlIGludGVybmV0IHRoZSBleGFjdCBjb21tYW5kcyBJIG5lZWQgaW4gdG11eC4gSGVyZSdzIGFuIGVhc3kgd2F5IHRvIGR1bXAgdGhlIHdob2xlIHRtdXggaGlzdG9yeSBidWZmZXIgdG8gYSB0ZXh0IGZpbGUgd2l0aG91dCBjb21wbGljYXRlZCBlZGl0L3Njcm9sbC9jb3B5IHN0YXJ0L2NvcHkgZW5kIGNvbWJpbmF0aW9ucy4gV2UnbGwgYXNzdW1lIHlvdXIgdG11eCBwcmVmaXgga2V5IGlzIHRoZSBkZWZhdWx0IENUUkwtQmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudENUUkwtQiAgOiAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZhdWx0IHByZWZpeCBrZXkgYW5kIGNvbG9uLiBvcGVucyB0aGUgY29tbWFuZCBwYW5lLCBhdCB0aGUgYm90dG9tCmNhcHR1cmUtcGFuZSAtUyAtICAgICAgICMgc2VuZCB3aG9sZSBoaXN0b3J5IHRvIHRtdXggYnVmZmVyCgpDVFJMLUIgICA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZ2V0IHJlYWR5IGZvciBhbm90aGVyIGNvbW1hbmQsIHRtdXgKPGNvZGU+c2F2ZS1idWZmZXIgfi90bXV4X291dHB1dC50eHQgICAgICAgICAjIHNlbGYgZXhwbGFuYXRvcnk8L2NvZGU+IGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50Tm93IHlvdSBjYW4gdXNlIHlvdXIgdGV4dCBlZGl0b3IgdG8gbG9vayBhdCB0aGUgY29tbWFuZCBoaXN0b3J5LCBhbGVydHMsIGFuZCBvdXRwdXRzLiBJIGhhZCB0byB1c2UgdGhpcyByZWNlbnRseSB3aGVuIEkgcGlwZWQgYSBsb25nIHJ1bm5pbmcgc2NyaXB0IHRocm91Z2ggdGVlIC1hIGJ1dCBpdCBmYWlsZWQgdG8gc2VuZCBhbnkgb2YgdGhlIHNjcmVlbiBvdXRwdXQgdG8gdGhlIHNwZWNpZmllZCB0ZXh0IGZpbGUuIFRoaXMgd2FzIGEgbGlmZXNhdmVyLmRyb3BDYXBpbm5lckJsb2Nrc3N0YXRlc2F2ZWRBdHN0YXRlc2F2ZWRCeTxiPjxicj48YnI+YnI+PCMgZGVmYXVsdCBwcmVmaXgga2V5IGFuZCBjb2xvbi4gb3BlbnMgdGhlIGNvbW1hbmQgcGFuZSwgYXQgdGhlIGJvdHRvbTxicj48YnI+IyBzZW5kIHdob2xlIGhpc3RvcnkgdG8gdG11eCBidWZmZXIjIGdldCByZWFkeSBmb3IgYW5vdGhlciBjb21tYW5kLCB0bXV4Q1RSTEI6CmNhcHR1cmUtcGFuZSAtUyAtICAgICAgICMgZ2V0IHJlYWR5IGZvciBhbm90aGVyIGNvbW1hbmQsIHRtdXgKYnI+PGNvZGU+ICAjIHNlbGYgZXhwbGFuYXRvcnk8L2NvZGU+PGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrcwo8Y29kZT4jc2VsZmV4cGxhbmF0b3J5Lzxjb2RlPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgUHCAQIBAgGCAUhCAe+C4YBQQIkAQtBAQUkoAUIBwgGCA4IDggLCAZIAQYIBAkICggECAYIBw8ECgeIAwcLCAcPBAoHmAYHCwgHDwQKBwoWCwENARQBAwEGARAUIwILkwEBKRQICwgHDwQKB4MEBwsFBwUHAgFEAYkBBCMlBEEBGCYEBQIaCAcECkcACwgECwEGNhMBBAAAAQAAAAEIAAABAgAjAQEAGEIBAQBBAAIAQQACAEEAAgBBAAIAQQACAA1BAiAHBAIBBpEBFEEiAYsBAH0BdxMyMDI1LTEwLTEwVDExOjMxOjEydyFjb3B5LXRtdXgtc2Nyb2xsLWJ1ZmZlci10by1hLWZpbGV3B3B1Ymxpc2h9AX0AdwRvcGVudwRvcGVueXcAdwhzdGFuZGFyZHcAdQF9BHUBfYYCdyRiMTVlMTk4Zi1jZTM1LTRjY2EtYWNjYi0yMTAzMGVhMmU1YTN4d88BPHA+dG11eCBpcyBzdXBlciBoYW5keSBmb3IgbG9uZyBydW5uaW5nIGNvbW1hbmRzLiBFc3BlY2lhbGx5IGlmIHlvdSBoYXZlIGEgZG9kZ3kgY29ubmVjdGlvbiB3aGljaCBpcyBsaWtlbHkgdG8gYnJlYWs6IHRoZSBjb21tYW5kIHdpbGwga2VlcCBydW5uaW5nIGFuZCB5b3UgY2FuIHJlLWF0dGFjaCB0byB0aGUgc2Vzc2lvbiB0byBzYXZlIHRoZSBkYXkuICA8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDIzZDA3OTBlLWY1Y2EtNGUyMS1iNGMyLTNjYmVhOWZjMTEzM3h3nwM8cD5CdXQgYXMgYSBkeWVkLWluLXRoZS13b29sIGJhc2ggdXNlciwgSSd2ZSBraW5kYSBnb3QgdXNlZCB0byBiZWluZyBhYmxlIHRvIHNjcm9sbCB1cCBhbmQgZG93biBteSBjb21tYW5kIGhpc3RvcnkgYW5kIGNvcHkgaXRlbXMgZnJvbSB0aGVyZS4gQnV0IEkgYWx3YXlzIGhhdmUgdG8gc2VhcmNoIHRoZSBpbnRlcm5ldCB0aGUgZXhhY3QgY29tbWFuZHMgSSBuZWVkIGluIHRtdXguIEhlcmUncyBhbiBlYXN5IHdheSB0byBkdW1wIHRoZSB3aG9sZSB0bXV4IGhpc3RvcnkgYnVmZmVyIHRvIGEgdGV4dCBmaWxlIHdpdGhvdXQgY29tcGxpY2F0ZWQgZWRpdC9zY3JvbGwvY29weSBzdGFydC9jb3B5IGVuZCBjb21iaW5hdGlvbnMuIFdlJ2xsIGFzc3VtZSB5b3VyIHRtdXggcHJlZml4IGtleSBpcyB0aGUgZGVmYXVsdCBDVFJMLUI8L3A+dw5jb3JlL3BhcmFncmFwaHl3JGZlZTYwMTUxLTlkYzUtNDBlYy1iOTI3LTYwN2U5MTRkYzRiMnh39QI8cHJlIGNsYXNzPSJ3cC1ibG9jay1jb2RlIj48Y29kZT5DVFJMLUIgIDogICAgICAgICAgICAgICAgICAgICAgICMgZGVmYXVsdCBwcmVmaXgga2V5IGFuZCBjb2xvbi4gb3BlbnMgdGhlIGNvbW1hbmQgcGFuZSwgYXQgdGhlIGJvdHRvbQpjYXB0dXJlLXBhbmUgLVMgLSAgICAgICAjIHNlbmQgd2hvbGUgaGlzdG9yeSB0byB0bXV4IGJ1ZmZlcgoKQ1RSTC1CICAgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGdldCByZWFkeSBmb3IgYW5vdGhlciBjb21tYW5kLCB0bXV4Cjxjb2RlPnNhdmUtYnVmZmVyIH4vdG11eF9vdXRwdXQudHh0ICAgICAgICAgIyBzZWxmIGV4cGxhbmF0b3J5PC9jb2RlPiA8L2NvZGU+PC9wcmU+dwljb3JlL2NvZGV3JDNmY2I3NjNhLWVlNjQtNGQ0My1hZDQ2LTYzNDJlZjVhZmVmMnh3igI8cD5Ob3cgeW91IGNhbiB1c2UgeW91ciB0ZXh0IGVkaXRvciB0byBsb29rIGF0IHRoZSBjb21tYW5kIGhpc3RvcnksIGFsZXJ0cywgYW5kIG91dHB1dHMuIEkgaGFkIHRvIHVzZSB0aGlzIHJlY2VudGx5IHdoZW4gSSBwaXBlZCBhIGxvbmcgcnVubmluZyBzY3JpcHQgdGhyb3VnaCB0ZWUgLWEgYnV0IGl0IGZhaWxlZCB0byBzZW5kIGFueSBvZiB0aGUgc2NyZWVuIG91dHB1dCB0byB0aGUgc3BlY2lmaWVkIHRleHQgZmlsZS4gVGhpcyB3YXMgYSBsaWZlc2F2ZXIuPC9wPncOY29yZS9wYXJhZ3JhcGh5e0J520MCPpAAe0HttZ9xIAAAdyRlZTgxYzczYi1jZWZlLTQ1ZDgtYjRhOS0zMWU1NDI3MGFiYmR3JDUzOWUxZDBlLWY1NTYtNDNlOC1iNGE5LTk4MzM5ODhlNTYwOHh3DmNvcmUvcGFyYWdyYXBoeQGJ97PtDhSlBh9GBgEDAQEBAAEFMlAqE+AHAA8gAQwBEwECAQUBDxQkC1IqE4EEAwUB\",\"updateId\":689133905}","footnotes":""},"categories":[4],"tags":[134],"class_list":["post-774","post","type-post","status-publish","format-standard","hentry","category-linux","tag-linux"],"_links":{"self":[{"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/posts\/774","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/comments?post=774"}],"version-history":[{"count":3,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/posts\/774\/revisions"}],"predecessor-version":[{"id":816,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/posts\/774\/revisions\/816"}],"wp:attachment":[{"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/media?parent=774"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/categories?post=774"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/play.datalude.com\/blog\/wp-json\/wp\/v2\/tags?post=774"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}