使用此开源工具在手机和 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 上,我使用注重隐私的专用 QR 扫描仪),iPhone 扫描 QR 码并在我的手机上启动 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)

我扫描 QR 码,它再次在我的手机上启动 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

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