当前位置: 首页 > 科技观察

使用croc命令在Linux计算机之间传输文件和文件夹

时间:2023-03-12 22:44:23 科技观察

有许多方法可以在两台或多台计算机之间传输文件。您可以使用基于服务器的文件共享工具、点对点文件共享应用程序、USB记忆棒、外部硬盘驱动器、SCP、NFS、FTP、HTTP、云存储平台等。本文将介绍一个名为croc的命令行工具,它可以让您轻松、快速、安全地在计算机之间传输文件和文件夹。使用croc工具传输数据速度很快,因为它充当系统之间的中继服务器。它在两台计算机之间创建了一个全双工实时通信层,因此“上传”和“下载”任务在两台计算机之间同时发生。croc使用密码验证密钥交换(PAKE)库提供端到端加密。PAKE库允许两个人使用双方都知道的弱密钥来生成强密钥。然后使用此密钥进行进一步加密。由于密钥只有发送方和接收方知道,第三方即使知道原始密码也无法知道密钥。croc能够一次在计算机之间传输多个文件。如果数据传输因任何原因中断,下次传输时可以从中断处继续文件传输。由于croc使用中继,因此您不需要中央服务器或端口转发。它是一个跨平台应用程序,因此您可以在Linux、Mac和Windows平台之间传输数据。简而言之,croc执行以下操作:使用中继在两台计算机之间传输数据,使用PAKE库提供端到端加密,一次传输多个文件,恢复传输,不需要中央服务器端口转发,ipv6-first和ipv4fallback,零依赖,跨平台免费开源。croc是用Go编程语言编写的,可根据MIT许可免费获得。在Linux上安装Croc工具您可以在Bash上使用以下命令在任何受支持的Linux和Unix发行版上安装croc:$curlhttps://getcroc.schollz.com|bash该命令会将croc源代码下载到本地并安装在/usr/local/bin/目录。如果你不想直接注入shell,你可以从**distributionpage**下载预编译的二进制文件并使用你的distribution的包管理器安装它们。例如,在Ubuntu系统上,可以使用以下命令安装Crocdeb文件:$sudoaptinstallgdebi$sudogdebicroc_8.3.2_Linux-64bit.deb您可以使用pacman在ArchLinux及其衍生产品上安装croc:$pacman-Scroc在NixOS上,执行以下命令安装:$nix-env-icroccroc也可以通过snap安装:$snapinstallcroc如果你在linux系统上安装了Go环境,也可以从源码编译croc。$GO111MODULE=ongoget-vgithub.com/schollz/croc/v8使用Croc在计算机之间传输文件和文件夹在使用它之前,请确保您的所有系统上都安装了croc。要使用croc传输文件/文件夹,只需运行:$crocsend示例:$crocsendfile.txtcroc将生成以下随机代码短语,相当于密码。Sending'file.txt'(116B)Codeis:slow-tomato-almondOntheothercomputerruncrocslow-tomato-almond在这里,代码短语(密码)是slow-tomato-almond。此代码短语用于建立加密认证密钥协议(PAKE),该协议生成发送方和接收方使用的秘密密钥以进行端到端加密。如果他们想在另一台计算机上接收上述文件,接收方应输入上述输出的最后一个命令行:$crocslow-tomato-almond按y然后按Enter接收文件。接受'file.txt'(116B)?(y/n)yReceiving(<-192.168.225.37:9009)file.txt100%|█████████████████████|(116/116B,32.966kB/s)[0s:0s]输出示例:pic设置自定义密码每次发送文件或文件夹时,croc都会生成一个随机密码,但由于每个密码都不一样的时候,用起来还是不太方便。所以我们可以自定义一个代码短语来提高效率。您可以使用--code参数设置自定义代码短语以发送文件/文件夹。这里$crocsend--codedownload-thisfile.txt中的download-this就是我们自定义的密码短语。示例输出:发送'file.txt'(116B)代码是:download-thisOntheothercomputerruncrocdownload-this收件人可以接收文件(使用自定义代码短语):$crocdownload-this像文件和文件夹一样发送文本,我们也可以共享文本.当您想要共享消息或URL时可以使用它。如果您想使用croc发送文本,可以运行以下命令:$crocsend--text"Hello!!"输出示例:Sending'text'Codeis:natural-roof-clockOntheothercomputerruncrocnatural-roof-clockSending(->[fe80::a00:27ff:fe10:7cc1%wlp9s0]:39916)收件人需要使用以下命令获取文本:$crocnatural-roof-clockAccept'text'?(y/n)yReceiving(<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)你好!!使用管道,您可以将文件的输出通过管道传输到croc作为其输入,如下所示。$catfile.txt|crocsend输出示例:发送'stdin'(116B)Codeis:dexter-cowboy-sopranoOntheothercomputerruncrocdexter-cowboy-sopranocroc将自动使用stdin数据并发送文件,并分配一个文件名,例如“croc-stdin-728899651”。在接收端,用户可以使用以下命令接收文件:$crocdexter-cowboy-soprano或:$croc--yesdexter-cowboy-soprano>out这里,--yes选项不要求任何确认并自动同意所有提示。设置输出文件夹默认情况下,croc会将数据下载到当前工作目录中。您可以使用--out选项使其使用不同的下载位置。$crocsendfile.txt的示例输出:发送“file.txt”(116B)代码是:program-public-mysteryOntheothercomputerruncrocprogram-public-mystery在接收端,运行:$croc--out~/Downloads出现提示时输入代码短语。获得帮助要获取帮助,请运行以下命令:$croc--helpNAME:croc-easilyandsecurelytransferstufffromonecomputertoanotherUSAGE:Sendafile:crocsendfile.txtSendafilewithacustomcode:crocsend--codesecret-passphrasefile.txtVERSION:v8.3.2-7d155adCOMMANDS:sendsendafile(seeoptionswithcrocsend-h)relaystartyourownrelay(optional)help,hShowsalistofcommandsorhelpforonecommandGLOBALOPTIONS:--rememberssavethesesettingstoreusenexttime(default:false)--debugtoggledebugmode(default:false)--yesautomaticallyagreetoallprompts(default:false)--stdoutredirectfiletostdout(default:false)--no-compressdisablecompression(default:false)--askmakesuresenderandrecipientareprompted(default:false)--relayvalueaddressoftherelay(default:"142.93.177.120:9009")[$CROC_RELAY]--relay6valueipv6addressoftherelay(default:"[2604:a880:800:c1::14c:1]:9009")[$CROC_RELAY6]--outvaluespecifyanoutputfoldertoreceivethefile(default:".")--passvaluepasswordfortherelay(default:"pass123")[$CROC_PASS]--help,-hshowhelp(default:false)--version,-vprinttheversion(default:false)【编者推荐】HDF驱动框架探路:比较Linux原生驱动开发与点亮Linux在Imx6ull板子上的黑谈解释:what在定时Linux系统上电时会发生什么?用于嵌入式计算的流行Linux发行版使用Croc命令在基于Linux的计算机之间传输文件和文件夹。