linux:传入压缩包乱码

66 阅读2分钟

你们好,我是金金金。

image.png

场景

直接把文件拖入到xshell窗口或者使用rz命令选择上传,结果发现传输过程中一坨乱码,不知所造成的原因,很懵逼,图如下

image.png

  • 肉眼可见的文件上传失败了~ 一堆啥玩意 ~让人捉摸不到头脑

image.png

排查

那当然要看rz这个命令到底是咋个使的咯~ 搞清楚它的原理用法就能很好的解决问题以及问题所在

  • rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

  • 常用参数

    • -b: 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.)
    • -e :对所有控制字符转义。

造成error的原因

排查的过程中 基本上就知道了问题所在~ 来 接着往下走

  • 默认情况下,rz 可能会在文本模式下传输文件,这取决于具体的实现和配置。文本模式会对换行符等特殊字符进行转换,适用于纯文本文件,但对于二进制文件(如图片、视频、可执行文件)来说,这种转换可能会破坏文件的完整性

解决

所以解决的方式也非常简单

  • 如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用: rz -be

image.png

image.png

image.png

没有出现任何问题,压缩包也按需上传了~

总结

使用场景

  • 仅使用 rz:适合于简单的文件传输需求,尤其是当你只需要传输一些简单的文本文件啊、一个图片文件等。
  • 使用 rz -be:推荐用于需要传输二进制文件。这种方式更加可靠,特别适合脚本化任务或自动化文件传输流程。一般压缩包等之类的使用,还是比较推荐用这个的~
  • 编写有误还请大佬指正,万分感谢。