这个脚本的应用场景很简单:
以类似
cp
的体验,将文件 /剪贴板复制给局域网内的另一个人
比如 A 想给 B 一个文件夹的数据,B 想把它放在本地的项目中测试,那么:
# A:
~/archive $ lcp data/001/ B.local
# B:(网络名 B.local (太长了? lcp 也支持自定义别名哒))
~/project/data $ ls
~/project/data $ lcp -d 001-A
~/project/data $ ls
001-A
接收者可决定将文件放哪里和 /或重命名,有那么点儿 AirDrop 的意味。
为什么写这个?一方面,有时候我们对分享只是一次性的轻量需求,借助一个中途的共享空间显得又些多余。另一方面,这跟 scp 的应用场景稍有区别,我是希望这两者互补的。scp 更适合“自己传给自己”,毕竟发送和接收的的用户都应该是属于你的,而且 scp 的使用者一人指定了文件的起点和终点。
那么,请试一下:(在努力适配 *nix,有兼容性问题请提出)
# 默认是不启用剪贴板集成的。要使用请在安装前将环境变量 `LCP_CLIPBOARD=1` 写进你的 shell profile。
bash <(curl -Ls https://lcp.now.sh/get)
这背后其实没什么技术含量,就是 V 站经常见到的传文件技巧: tar czf - | nc $host $port
然后 nc -l $host $port | tar xz
。我在命令行传文件给别人总找不到什么干净利落的方法(我们实验室是在每台机子上建所有人的用户然后互相 scp 的……),看到这个很是喜欢,又觉得写个 alias 不够,就干脆封装个交互舒服一点的 Bash 脚本,然后顺手做了剪贴板。当然,如果各位有更好的方法请无情打脸,我就当写 Bash 练个手吧。
因为是个简单的实现,没有任何加密与鉴权处理,请务必仅在信任的局域网中使用。
项目: https://github.com/Contextualist/lcp
第一次认真写 Bash,请多提意见!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.