使用这款开源工具在手机和 Linux 之间传输文件

qrcp 项目提供了一种快速将文件从 iPhone 或 Android 设备复制到 Linux 计算机,反之亦然的方法。
70 位读者喜欢这篇文章。
How to turn a Raspberry Pi into an eBook server

Opensource.com

 

您是否正在寻找一种方法,可以快速地将文件从 iPhone 或 Android 移动设备复制到 Linux 计算机,或者从 Linux 计算机复制到您的设备? 我最近发现了一个开源应用程序,它易于安装,并且使文件传输像二维码一样简单。

 

qrcp 项目提供了一个命令,该命令在您的终端中生成一个二维码,允许您通过网络向您的计算机发送或接收文件。

在 Linux、Windows 或 Mac 上安装 qrcp

开发者 Claudio d'Angelis 以 MIT 许可证 在 GitHub 上 发布了 qrcp 应用程序。 我发现它易于安装且易于使用。 它适用于 Linux、Windows 和 macOS,可以下载为 RPM、DEB 或 tarball。 几乎每个平台都有构建版本,包括 Raspberry Pi。

如果您想在 Linux 上安装它,请下载 RPM 或 DEB,并使用您的软件包管理器执行本地安装。 例如,在 Fedora、CentOS 或 Mageia 或类似的系统上

$ sudo dnf install ./qrcp*rpm

如果您只是想试用一下,您可以下载 tar.gz 存档并在本地运行它

$ tar --extract --file qrcp*tar.gz
$ ./qrcp version
qrcp 0.x.y

设置 qrcp

您可以使用 --help 选项查看所有可用的 qrcp 选项

$ qrcp --help
$ ./qrcp --help
Usage:
 qrcp [flags]
 qrcp [command]

Available Commands:
 completion  Generate completion script
 config      Configure qrcp
 help        Help about any command
 receive     Receive one or more files
 send        Send a file(s) or directories from this host
 version     Print version number and build information.
[...]

您可以通过编辑位于 ~/.config/qrcp/config.json 的默认配置文件,使用您喜欢的编辑器或从命令行调用配置向导来配置应用程序

$ qrcp config

第一步是创建一个配置文件。 qrcp config 命令会引导您完成此过程,但有一些棘手的问题。

第一个问题要求您提供完全限定域名。 如果您在不使用完全限定域名(或者您不知道)的本地网络上使用 qrcp,则将此项留空。 qrcp 命令将改为使用您的本地 IP 地址。

下一个问题提示您输入端口。 大多数防火墙会阻止非标准端口,但将端口 8080 识别为 Internet 流量并不少见。 如果您的防火墙阻止端口 8080,那么您仍然必须添加例外。 假设您的系统使用 firewalld,您可以使用以下命令允许端口 8080 上的流量

$ sudo firewall-cmd --add-port 8080/tcp --permanent

拒绝在传输完成后保持网络连接活动的选项,并让 qrcp 生成随机路径。

假设您在受信任的网络上,请使用 HTTP(而不是 HTTPS)连接,这样您就不必配置 TLS。

配置存储在 ~/.config/qrcp/config.json 中,并且可以在事后编辑,因此如果您改变对任何设置的想法,都可以轻松更新。

更新后的配置如下所示

{
  "fqdn": "",
  "interface": "wlp0s20f3",
  "port": 8080,
  "keepAlive": false,
  "path": "",
  "secure": false,
  "tls-key": "",
  "tls-cert": "",
  "output": "/home/don"

使用 qrcp 传输文件

现在您已准备好将文件从 Linux 计算机发送到移动设备。 在此示例中,我使用了我的 iPhone,它臭名昭著地完全不支持 Linux。 该过程在 Android 设备上完全相同。

这是我的操作方法。 首先,我在我的计算机上创建一个示例文件

$ echo "Hello world"> ~/example.txt

接下来,我使用 send 子命令将文件从我的 Linux 计算机发送到我的手机

Linux~$ qrcp send example.txt

 

example of sending a file

使用 qrcp send example.txt 发送文件的示例 (CC BY-SA 4.0)

我打开我的相机应用程序(在 Android 上,我使用注重隐私的专用二维码扫描器),iPhone 扫描二维码并在我的手机上启动 Safari。 最后,我点击下载按钮。

 

example download

下载 example.txt 文件 (CC BY-SA 4.0)

使用 qrcp 接收文件

接收文件同样容易,只是命令略有不同

$ qrcp receive

 

example of receiving a file

使用 grcp receive 命令接收文件 (CC BY-SA 4.0)

我扫描二维码,它再次在我的手机上启动 Safari 浏览器,但这次看起来有点不同,因为我正在从我的 iPhone 向 Linux 计算机发送文件。

 

example of selecting a file

选择要传输的文件 (CC BY-SA 4.0)

我点击选择文件,这允许我选择要发送的文件。

 

file appears in default location

文件已下载到默认位置 (CC BY-SA 4.0)

发送文件后,可以在我的配置中指定的默认位置找到它。

试用 qrcp

项目文档简短但足够充分,除了最初提出这个想法的 Claudio d'Angelis 之外,它还得到了开发者社区的支持。 社区欢迎您加入他们,并且该应用程序将改变您看待与移动设备之间文件传输的方式。 试试看!

接下来阅读什么
标签
User profile image.
教育家、企业家、开源倡导者、终身学习者、Python 教师。 教育心理学硕士,教育领导学硕士,Linux 系统管理员。

8 条评论

如果您正在使用 KDE Plasma 并且想要更“类似 Windows”的体验,以及桌面和手机之间更好的集成,我推荐 KDE Connect。

我也要说同样的话。 Debian 10 中的版本有点不稳定,我不知道 Debian 11 中的版本是否更稳定,因为我用得不多。

回复 ,作者:cjcox

我想了解更多关于 KDE Connect 的信息。 我在 Linux Unplugged 上听说了它,但在 Apple App Store 中搜索了它。 没有结果。 您可以在这里发布一些信息吗?

回复 ,作者:cjcox

从概念上讲,本文开启了许多可能性。

KDE connect 可在 testflight 中用于 IOS。 然而,蓝牙不是简单得多吗? 然后是 adb [push|pull]。 此外,我不确定 IOS,但有一个 Android 应用程序可以运行一个 Web 服务器,您可以从中上传或下载文件(这对负技术类型的人来说很好)。

回复 ,作者:Don Watkins

这是一个如此简洁的小命令。 伟大的发现,Don。 我最近一直在 Slackware 上使用它进行文件传输,而且效果很好。

谢谢 Seth! 我自己也一直在大量使用它。 我试图为 iOS 找到 KDE-Connect,但它尚不可用。 它在 Android 上运行良好。 当它可用时,这可能是一个不错的选择。

回复 ,作者:sethkenlon

在阅读您的评论后,我刚刚在 Slackware 上尝试了它。 易于安装,并且效果很好。 谢谢!

回复 ,作者:sethkenlon

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.