使用croc命令在Linux系统与电脑之间进行传输文件和文件夹

目录
文章目录隐藏
  1. 在 Linux 上安装 Croc 工具
  2. 使用 Croc 在计算机之间传输文件和文件夹
  3. 设置自定义代码短语
  4. 发送文本
  5. 使用管道
  6. 设置输出文件夹
  7. 获得帮助

使用 croc 命令在 Linux 系统与电脑之间进行传输文件和文件夹

在两台或多台计算机之间传输文件的方法有很多。你可以使用基于服务器的文件共享工具,点对点文件共享 app,U 盘,外部硬盘驱动器,SCP,NFS,FTP,HTTP,云存储平台等等。

本文将介绍一个名为 croc 的命令行工具,可以让你轻松、快速、安全地在计算机之间传输文件和文件夹。

使用 croc 工具传输数据的速度很快,因为它充当系统之间的中继服务器。它在两台计算机之间创建了全双工实时通信层,因此「上传」和「下载」任务在两台计算机之间同时发生。

croc 使用密码验证密钥交换(PAKE)库提供端到端加密。PAKE 库允许两个人使用双方都知道的弱密钥来生成强密钥。然后将此密钥用于进一步加密。由于密钥仅由发送者和接收者知道,因此即使第三者知道原始密码,也没有办法知道秘钥。

croc 能够一次在计算机之间传输多个文件。如果数据传输由于任何原因而中断,下次传输的时候它可以从上次中断的地方继续进行文件传输。

由于 croc 使用中继,因此你不需要中央服务器或端口转发。它是一个跨平台的应用程序,因此你可以在 Linux,Mac 和 Windows 平台之间传输数据。

简而言之, croc 执行以下操作:

  • 使用中继在两台计算机之间传输数据,
  • 使用 PAKE 库提供 端到端加密,
  • 一次传输多个文件 ,
  • 断点续传,
  • 不需要中央服务器端口转发,
  • ipv6-first 和 ipv4 后备,
  • 零依赖性,
  • 跨平台,
  • 免费和开源。

croc 使用 Go 编程语言所编写,并遵从 MIT 许可免费提供。

在 Linux 上安装 Croc 工具

可以在 Bash 上使用以下命令将 croc 安装在所支持的任何 Linux 和 Unix 发行版上:

$ curl https://getcroc.schollz.com | bash

这个命令将把 croc 源码下载到本地并安装在 /usr/local/bin/ 目录下。

如果你不想直接注入Shell,可以从**发行版页面**下载预编译的二进制文件,并使用发行版的软件包管理器进行安装。

例如,在 Ubuntu 系统上可以使用以下命令安装 Croc deb 文件:

$ sudo apt install gdebi
$ sudo gdebi croc_8.3.2_Linux-64bit.deb

你可以使用 pacman 将 croc 安装在 Arch Linux 及其衍生版本中:

$ pacman -S croc

在 NixOS 上,执行以下命令进行安装:

$ nix-env -i croc

croc 也可用 snap 方式进行安装:

$ snap install croc

如果您已在 Linux 系统上安装了 Go 环境,也可以从源代码编译 croc  。

$ GO111MODULE=on go get -v github.com/schollz/croc/v8

使用 Croc 在计算机之间传输文件和文件夹

在使用之前,先确保在所有系统上都安装了 croc 。

要使用 croc 传输文件/文件夹,只需运行:

$ croc send <文件或文件夹路径>

例:

$ croc send file.txt

croc 将生成如下的随机代码短语,相当于暗号。

Sending 'file.txt' (116 B)
Code is: slow-tomato-almond
On the other computer run

croc slow-tomato-almond

在这里,代码短语(暗号)是 slow-tomato-almond。该代码短语用于建立经过密码验证的密钥协议(PAKE),该协议会生成供发送方和接收方用于端到端加密的秘钥。

如果想要在另一台计算机上接收上述文件,那么收件人应输入上述输出的最后一行命令:

$ croc slow-tomato-almond

按 y,然后按回车键来接收文件。

Accept 'file.txt' (116 B)? (y/n) y

Receiving (<-192.168.225.37:9009)
file.txt 100% |████████████████████| (116/116 B, 32.966 kB/s) [0s:0s]

输出示例:

使用 Croc 在计算机之间传输文件和文件夹

设置自定义代码短语

每次发送文件或文件夹时, croc 都会生成一个随机代码短语,但因为每次都不一样,使用起来还是不太方便。所以我们可以自定义一个代码短语,提高效率。可以使用 --code 参数来设置自定义代码短语来发送文件/文件夹。

$ croc send --code download-this file.txt

这里的download-this 就是我们自定义的代码短语。

输出示例:

Sending 'file.txt' (116 B)
Code is: download-this
On the other computer run

croc download-this

收件人可以使用以下命令接收文件(使用自定义的代码短语):

$ croc download-this

使用自定义的代码短语

发送文本

就像文件和文件夹一样,我们也可以共享文本。当你要共享消息或者 URL 时可以用这种方式。

如果要使用 croc 发送文本,可以运行以下命令:

$ croc send --text "Hello!!"

输出示例:

Sending 'text' 
Code is: natural-roof-clock
On the other computer run

croc natural-roof-clock

Sending (->[fe80::a00:27ff:fe10:7cc1%wlp9s0]:39916)

收件方需要使用以下命令获取文本:

$ croc natural-roof-clock
Accept 'text' ? (y/n) y

Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Hello!!

收件方需要使用以下命令获取文本

使用管道

你可以将文件的输出通过管道传输到 croc 作为它的输入,如下所示。

$ cat file.txt | croc send

输出示例:

Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer run

croc dexter-cowboy-soprano

croc 将自动使用 stdin 数据并发送文件,分配文件名,例如“ croc-stdin-728899651”。

在接收端,用户可以使用以下命令接收文件:

$ croc dexter-cowboy-soprano

或者,使用:

$ croc --yes dexter-cowboy-soprano > out

在这里,--yes 选项不会要求任何确认,并自动同意所有提示。

设置输出文件夹

默认情况下, croc 会将数据下载到当前工作目录中。您可以使用 --out 选项使其使用不同的下载位置。

$ croc send file.txt

输出示例:

Sending 'file.txt' (116 B)
Code is: program-public-mystery
On the other computer run

croc program-public-mystery

在接收端,运行:

$ croc --out ~/Downloads

出现提示时输入代码短语。

获得帮助

要获取帮助,请运行以下命令:

$ croc --help
NAME:
   croc - easily and securely transfer stuff from one computer to another

USAGE:
   Send a file:
      croc send file.txt

   Send a file with a custom code:
      croc send --code secret-passphrase file.txt

VERSION:
   v8.3.2-7d155ad

COMMANDS:
   send     send a file (see options with croc send -h)
   relay    start your own relay (optional)
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --remember      save these settings to reuse next time (default: false)
   --debug         toggle debug mode (default: false)
   --yes           automatically agree to all prompts (default: false)
   --stdout        redirect file to stdout (default: false)
   --no-compress   disable compression (default: false)
   --ask           make sure sender and recipient are prompted (default: false)
   --relay value   address of the relay (default: "142.93.177.120:9009") [$CROC_RELAY]
   --relay6 value  ipv6 address of the relay (default: "[2604:a880:800:c1::14c:1]:9009") [$CROC_RELAY6]
   --out value     specify an output folder to receive the file (default: ".")
   --pass value    password for the relay (default: "pass123") [$CROC_PASS]
   --help, -h      show help (default: false)
   --version, -v   print the version (default: false)

文章来源:公众号 良许 Linux

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 使用croc命令在Linux系统与电脑之间进行传输文件和文件夹

发表回复