使用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

你可以使用 pacmancroc 安装在 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 runcroc slow-tomato-almond

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

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

$ croc slow-tomato-almond

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

Accept 'file.txt' (116 B)? (y/n) yReceiving (<-192.168.225.37:9009)
file.txt 100% |████████████████████| (116/116 B, 32.966 kB/s) [0s:0s]

输出示例:

93a8fa9f29e59249fdb6746499e1aeef.png

pic

设置自定义代码短语

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

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

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

输出示例:

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

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

$ croc download-this

a8d6ce3532fe169cb9bb4a372935bca8.png

使用Croc发送带有自定义代码的文件和文件夹

发送文本

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

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

$ croc send --text "Hello!!"

输出示例:

Sending 'text' 
Code is: natural-roof-clock
On the other computer runcroc natural-roof-clockSending (->[fe80::a00:27ff:fe10:7cc1%wlp9s0]:39916)

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

$ croc natural-roof-clock
Accept 'text' ? (y/n) yReceiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Hello!!

886c4275b2bcab20464ffbdd1a0925cc.png

使用croc发送文本

使用管道

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

$ cat file.txt | croc send

输出示例:

Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer runcroc 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 runcroc program-public-mystery

在接收端,运行:

$ croc --out ~/Downloads

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

获得帮助

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

$ croc --help
NAME:croc - easily and securely transfer stuff from one computer to anotherUSAGE:Send a file:croc send file.txtSend a file with a custom code:croc send --code secret-passphrase file.txtVERSION:v8.3.2-7d155adCOMMANDS: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 commandGLOBAL 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Lady Bird

La Ballade of Lady Bird[Lady Bird]Bird : Lady? Lady : Yes Bird? Bird : Its cold Lady : I know Lady : Bird... I cannot see a thing Bird : Its all in your mind Lady : Im worried Bird : No one will come to see us Lady : Maybe they come but we just dont see …

揭秘 | 小米最新款12PRO智能动态刷新率技术原理

1. 背景最新发布的小米手机12pro提到了一个安卓系统上的新技术&#xff1a;智能动态刷新率。这到底是个啥技术&#xff1f;让雷军同学可以大吹特吹。智能动态刷新海报要解释上面的技术&#xff0c;不得不提刷新率和帧率这两个概念。在平时的生活当中&#xff0c;你可能也会经常…

看看高手做的ARM开发板

放假前&#xff0c;我写了一篇文章&#xff0c;里面有提到我放假的时候会接触一个开发板&#xff0c;这个开发板就是标题提到的这个ARM处理器&#xff0c;这篇文章会对这个处理器和开发板做个简单的介绍。说这个开发板前&#xff0c;先介绍下我的一个朋友zzy。zzy是通过公众号接…

心情-天气

最近雨还满多的&#xff0c;但不是阴雨连绵&#xff0c;中间会时不时有个大晴天。一直觉得下雨的日子就应该是安排在周一到周五&#xff0c;这样的话我就可以安心的聚精会神的上班&#xff0c;因为反正下雨哪里也不想去&#xff0c;还是好好上班比较好&#xff0c;躲在办公室里…

单线程会导致死锁吗?

我之前在我们的项目里面解决了一个死锁的问题&#xff0c;然后我跟一个我的朋友聊了下&#xff0c;他让我深入研究下这个问题。大家也可以考虑想我的这个问题。首先我们再看看什么是死锁&#xff1f;什么是死锁用个通俗的例子讲一讲死锁死锁从文字理论上说明的是两个线程&#…

Json的优缺点

JSON的定义 一种轻量级的数据交换格式&#xff0c;具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案&#xff08;有点类似于正则表达式 &#xff0c;获得了当今大部分语言的支持&#xff09;&#xff0c;从而可以在不同平台间进行数据交换。JSON…

软件工程师 VS 硬件工程师

因为在软件行业35岁就算老人了而搞硬件的53岁正辉煌表面上看起来高大上的硬件工程师在实际的工作中&#xff0c;其实很惨...以上漫画虽然调侃的意味更多但现实中搞硬件的门槛确实很高收入也会随着经验的增多不断增长硬件工程师也基本不存在中年危机如果实在搞不下去了转项目经理…

假如我们的坦克继续前进队——需求改进系统设计

需求和原型改进 在上个星期的《需求说明书》课堂讨论中&#xff0c;老师提出了游戏的用户界面的设计问题。 经过小组成员的讨论后&#xff0c;我们的想法如下&#xff1a;设计关卡基于时间和人手问题难以实现因此改为一关的形式&#xff0c;以便有更多的时间出开发趣味性更高的…

DIY一个低成本多功能点阵时钟!

大家好&#xff0c;转发一篇正念同学的文章----大家好&#xff0c;我是ZhengN。本次转载一篇保姆级的diy教程&#xff1a;基于Esp8266的多功能点阵时钟 。简介很早就了解ESP8266了&#xff0c;当时也用这个搞过一些小demo&#xff0c;一直也没有想过要弄些实际的作品出来&#…

从DataTable导出Excel,并下载,删除Excel进程。

页面上加入一个button即可.源代码如下: usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Web;usingSystem.Web.SessionState;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.HtmlC…

Traceroute(路由追踪)的原理及实现

现实世界中的网络是由无数的计算机和路由器组成的一张的大网&#xff0c;应用的数据包在发送到服务器之前都要经过层层的路由转发。而Traceroute是一种常规的网络分析工具&#xff0c;用来定位到目标主机之间的所有路由器 原理 在介绍Traceroute的原理之前&#xff0c;需要了解…

我们应该搞清楚分支预测

分支预测的英文名字是「Branch Prediction」大家可以在Google上搜索这个关键字&#xff0c;可以看到关于分支预测的很多内容&#xff0c;不过要搞清楚分支预测如何工作的&#xff0c;才是问题的关键。分支预测对程序的影响我们来看看下面的两段代码代码1#include <algorithm…

Intent介绍及Intent在Activity中的使用方法

1.Intent的实现过程   在Android中&#xff0c;Intent不仅可用于应用程序之间的交互&#xff0c;也可用于应用程序内部的Activity/Service之间的交互。   Intent负责对应用中一次操作进行描述&#xff0c;描述内容包括动作以及动作所涉及的数据&#xff0c;Android中的In…

程序结束后去哪儿了?

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;转发一篇卓老师的文章&#xff0c;文章中的内容我之前做单片机的时候也有遇到过。推荐给大家看看~简 介&#xff1a; 对于嵌入式系统&#xff0c;如果没有运行RTOS&#xff0c;那么程序开发中的 主函数&#xff08;main()&a…

CodeSmith终极玩法

CodeSmith是一个模仿asp.net运行机制的代码生成器, 运行时分析模板(相当aspx文件)的预编译指令和主体内容, 生成一个继承自CodeSmith.Engine.CodeTemplate(相当于System.Web.UI.Page)或者一个在Inherites预编译指令指定的类(相当于CodeBehind类)的源码, 且把它编译. 然后把这个…

bom与dom

区别 BOM&#xff08;Browser Object Model&#xff09; BOM 即浏览器对象模型&#xff0c;BOM没有相关标准&#xff0c;BOM的最核心对象是window对象。window对象既为javascript访问浏览器提供API&#xff0c;同时在ECMAScript中充当Global对象。BOM和浏览器关系密切&#xff…

有些事不用听别人的

今天在群里跟几个朋友聊天&#xff0c;然后说了自己的想法&#xff0c;最近很多人在说公众号不会有好的发展&#xff0c;写文章也是没有出路的。不过这个是事实。短视频才是可能是出路&#xff0c;短视频是个很大的蛋糕&#xff0c;从表达方式上来说&#xff0c;视频的表达方式…

25个优秀的设计机构网站设计案例

今天&#xff0c;我们一起来欣赏网站设计工作室自己的网站。设计公司的网站除了要能够吸引客户以外&#xff0c;还要通过他们自己的网站向客户展示他们的设计理念和风格。这里收集的25个优秀的设计机构网站既有清爽简洁风格的&#xff0c;也有色彩丰富&#xff0c;图文并茂的&a…

一个适用各类场合的Makefile模板

1.写在前面对于Windows下开发&#xff0c;很多IDE都集成了编译器&#xff0c;如Visual Studio&#xff0c;提供了“一键编译”&#xff0c;编码完成后只需一个操作即可完成编译、链接、生成目标文件。Linux开发与Windows不同&#xff0c;Linux下一般用的的gcc/g编译器&#xff…

毕业十年|我的嵌入式AI学习路线(笔记、代码)

嵌入式从业者接下来会有怎样的黄金十年&#xff1f;在物联网和人工智能的促进下&#xff0c;嵌入式在未来的5-10年内会迎来更多的发展机会&#xff0c;一方面嵌入式开发会迎来更多的应用场景&#xff0c;另一方面嵌入式开发的技术体系也会逐渐丰富&#xff0c;从而拓展物联网开…