本文向大家分享一个可以在电脑端和移动端共享文件的工具——sharing。
每个程序员可能都遇到过这样的场景:正在 Linux 办公电脑上紧张地写代码,突然需要把一些文件传到手机上,但是公司的安全策略限制了常用即时通讯软件的使用,网页版微信也无法登录……这时候,一个叫做 Sharing 的命令行工具就能派上大用场。
前言
sharing 是一个命令行工具,无需额外的客户端应用程序即可将目录和文件从 CLI 共享到 iOS 和 Android 设备。
为什么会有这种需求呢?
一个真实的场景:我们使用 Ubuntu 系统办公,由于是办公电脑,没有安装类似 QQ、微信这类聊天软件。网页版微信也被限制登录,只有一个飞书,发送图片还会被加上水印。
当遇到一张好看的图片想保存到手机上时,我竟然找不到一个便捷的方法……
当我发现 sharing 这个工具后,再也没有这种烦恼,于是我也想推荐给大家使用,如果你们也有这种困扰的话。
成功安装 sharing 后,敲入 sharing 文件所在路径
回车就会在终端展示一个二维码,然后掏出你的手机,扫码二维码就能访问这个路径下的文件,比如图片,长按保存即可。
blog.axiaoxin.com$ sharing ~/图片/BingWallpaper Scan the QR-Code to access '/blog.axiaoxin.com/图片/BingWallpaper' directory on your phone ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ ▄▄▄▄▄ █▀█ █▄█▄▀▀▄▀▄▀█ ▄▄▄▄▄ █ █ █ █ █▀▀▀█ ▀▄▀▀▀ ▄ █ █ █ █ █ █▄▄▄█ █▀ █▀▀█ ▀█ █▄██ █▄▄▄█ █ █▄▄▄▄▄▄▄█▄▀ ▀▄█▄█ █▄█ █▄▄▄▄▄▄▄█ █▄ ▄▄▄█▄ ▄▄▀▄▀ ▀▄▄▄█▀▄▄▀▄▀▄█▄▀█ ███▄▄▀ ▄▀▄█▄█▀█▀ ▄█▀▀ ▀▀▄ ██▀██ █▀ ▀▀█▄▄ █▄▄█▄ ▀█▄ ▀▀▄ ▀▄▀▄ █▀█ █▀ █▄▀█▄█ █ ▄██ ██▄▀█▀ ▀██▄▀██ █▀ █ ▀▀▄▄ ▀▄▀▄▀█▄ ▀ ▄▄▀█▀▀ █▀█ █ ██▀▄▀▄▄▄▄ █▀██▄ ████ ██▀▄▄▀██ █▄████▄▄█▀█▄█▄▄▀▄▄▄▀▀ ▄▄▄ ▀ █ █ ▄▄▄▄▄ █▄█▀ ▄▄▄▄▀██▄ █▄█ ▄▄▀▀█ █ █ █ █ ▀█▄▀▀█▄▄ ▄▀▄ ▄ ▄▄▄ █ █ █▄▄▄█ █ ▄▀█▀ ▄ ▄██ ▀▄ ▀▄▄█ ██ █▄▄▄▄▄▄▄█▄▄▄█▄█▄▄▄▄▄██▄▄▄▄▄▄███ or access this link: https://192.168.0.2:7478?time=1678978575806 Press ctrl+c to stop sharing
一、什么是 Sharing?—— 文件共享的新方式
Sharing 是一款基于 Node.js 的命令行工具,旨在帮助用户在不同操作系统之间(如 Linux、Windows、macOS)实现文件、目录、剪贴板内容的共享和接收。用户无需在手机端安装额外应用,只需在电脑上安装 Sharing,并在终端执行相应命令即可生成二维码,供手机扫描以访问共享内容。
Sharing 主要功能亮点
Sharing 工具主要提供以下几种功能:
- 共享文件或目录:直接将指定文件或目录分享至移动设备。
- 共享剪贴板内容:可将复制到剪贴板的文本内容生成二维码,手机扫码即可读取。
- 接收文件:通过生成二维码,允许从手机上传文件至指定目录。
- 基本身份验证:为共享内容设置用户名和密码,确保内容安全。
- SSL 支持:可启用 SSL 加密传输,保障文件传输过程中的数据安全。
二、如何安装 Sharing 工具
使用 Sharing 工具的前提是 Node.js 版本为 16.x 或更高,安装过程如下:
npm install -g easy-sharing
macOS 用户在运行时需注意将 sharing
命令替换为 easy-sharing
,确保兼容性。
参考资料
三、使用 Sharing 工具共享文件与目录
Sharing 的使用流程非常简单,只需在终端中指定要共享的文件或目录路径即可。以下是几种常用的命令格式:
1. 共享文件或目录:
sharing /path/to/file-or-directory
终端会生成一个二维码,手机扫码后即可查看并下载共享内容。值得注意的是,共享设备需连接至相同 Wi-Fi 网络;如果电脑拥有公共 IP 地址,则可以使用 --ip
参数指定 IP 地址:
sharing --ip 公共IP地址 /path/to/file-or-directory
2. 共享剪贴板内容:
将要共享的文本内容复制到剪贴板,运行以下命令即可生成二维码,供手机扫描查看文本内容(目前不支持剪贴板图片共享):
sharing -c
3. 接收文件:
允许手机将文件上传至指定的目录。运行以下命令后会生成二维码:
sharing /destination/directory --receive
第一个二维码用于上传文件,扫描后点击页面上的按钮,即可将文件上传至指定目录。第二个二维码用于访问目录,确认文件上传是否成功。
4. 启用基本身份验证:
通过 -U
和 -P
参数设置用户名和密码,确保只有授权用户能够访问共享内容:
sharing /path/to/file-or-directory -U 用户名 -P 密码
四、使用场景与优势
Sharing 工具适用于多种场景,尤其在以下情况下为用户提供了极大的便利:
- 跨平台文件传输:无需在手机端安装额外客户端应用,简化了文件传输流程,适用于 iOS、Android、Linux、Windows 和 macOS。
- 办公环境限制:在很多办公环境中,微信、QQ 等即时通讯软件无法使用,而 Sharing 工具可以完全绕过这些限制。
- 简洁便捷:只需通过命令行操作和二维码扫描即可完成文件共享,适合习惯使用命令行工具的开发者和技术人员。
- 轻量便捷:无需额外客户端,直接通过命令行操作即可实现文件共享。
- 跨平台兼容:支持多种操作系统和移动设备。
- 安全性保障:支持基本身份验证和 SSL 加密,适合在有安全需求的网络环境中使用。
- 依赖 Node.js 环境:使用前需确保 Node.js 的安装和版本要求。
五、Sharing 的未来开发计划
根据 GitHub 项目页面上的信息,Sharing 未来将进一步丰富其功能,包括:
- 压缩文件传输:通过
--zip
参数在传输前压缩文件,减少文件传输的带宽消耗。 - 自签名证书创建:允许用户生成自签名证书,增强安全性。
- 更新功能横幅截图:展示
--receive
接收文件的操作流程。
常见问题解答 (FAQs)
Q1:Sharing 工具的文件传输速度如何?
Sharing 基于网络连接速度,局域网传输速度通常较快;跨网络传输时则依赖网络带宽。
Q2:是否可以共享剪贴板的图片内容?
当前 Sharing 仅支持文本剪贴板内容的共享,图片暂不支持。
Q3:Sharing 是否支持多用户同时连接?
默认情况下 Sharing 支持单用户访问,但可以通过在不同端口运行多个实例来实现多用户访问。
Q4:可以在公网中使用 Sharing 吗?
可以,但需要有公网 IP 或使用端口映射,配合 –ip 参数指定 IP 地址即可实现。
七、总结
Sharing 是一款强大而灵活的命令行工具,为跨设备文件传输提供了极简且高效的解决方案。无论是需要在办公环境中传输文件,还是快速共享个人设备中的内容,Sharing 都能为用户提供便捷的文件共享体验。
通过二维码扫描、命令行操作以及多平台兼容性,Sharing 成为文件传输需求下的得力助手。对于常使用命令行的开发者,Sharing 更是必不可少的高效工具之一。