使用这款开源工具在手机和 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 已在 GitHub 上以 MIT 许可证发布了 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,众所周知,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 服务器,您可以从中上传或下载文件(这对 neg-tech 类型的人来说很好)。

回复 ,作者是 Don Watkins

这是一个非常简洁的小命令。很棒的发现,Don。我最近一直在 Slackware 上使用它进行文件传输,效果非常好。

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

回复 ,作者是 sethkenlon

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.