Crates.io | sbfiles |
lib.rs | sbfiles |
version | 0.1.0 |
source | src |
created_at | 2023-07-14 07:47:37.22781 |
updated_at | 2023-07-14 07:47:37.22781 |
description | Copy/paste files using terminal scrollback buffer |
homepage | https://github.com/ybyygu/sbfiles |
repository | https://github.com/ybyygu/sbfiles |
max_upload_size | |
id | 915904 |
size | 38,605 |
方便本地和远程(SSH)主机间小文件的交换, 即
这个小玩意不是为了取代scp/sftp之类的文件传输工具的, 而是为了在以下几种情况下更方便地进行文件交换:
直接将本地文件发送到远程主机命令行当前目录下, 或将命令行当前目录下文件直接取回本地. 省去scp和sftp切换目录的麻烦.
特别是当目标文件所在主机位于重重ssh嵌套(A -> B -> C), 没有办法直接来scp或sftp 时, 这个小玩意用起来更方便些.
由于是通过终端屏幕来中转, 因此, 一次所能处理的文件大小就受限于终端最大能显示的行数. 这个数值(lines of scrollback)可手动设置. 不同的终端默认设置不同, mintty里是 10000行, putty里只有200行. 设大一些, 这样用来处理几百KB的文件(zip压缩后)不在话下.
sbfiles配合tmux使用, 最便利.
在tmux中ssh到远程主机(可任意嵌套).
在远程主机上使用sbfiles编码文件:
sbfiles encode file-or-dir
在本地某个目录下执行如下命令(outside tmux):
tmux capture-pane -S - -E - -p|sbfiles decode
在本地主机上使用sbfiles编码文件:
sbfiles encode file-or-dir
复制tmux屏幕内容至buffer
ctrl-b :capture-pane -S -
在tmux中ssh到远程主机(可任意嵌套).
在远程主机某个目录下执行如下命令(inside tmux):
sbfiles decode
将tmux之前保存的buffer贴入后, 按ctrl-d确认即可:
ctrl-b :paste-buffer