你们好,我是金金金。
场景
直接把文件拖入到
xshell
窗口或者使用rz
命令选择上传,结果发现传输过程中一坨乱码,不知所造成的原因,很懵逼,图如下
- 肉眼可见的文件上传失败了~ 一堆啥玩意 ~让人捉摸不到头脑
排查
那当然要看
rz
这个命令到底是咋个使的咯~ 搞清楚它的原理用法就能很好的解决问题以及问题所在
-
rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到
Linux
服务器 -
常用参数
-b
: 以二进制方式,默认为文本方式。(Binary (tell it like it is) file transfer override.)-e
:对所有控制字符转义。
造成error的原因
排查的过程中 基本上就知道了问题所在~ 来 接着往下走
- 默认情况下,
rz
可能会在文本模式下传输文件,这取决于具体的实现和配置。文本模式会对换行符等特殊字符进行转换,适用于纯文本文件,但对于二进制文件(如图片、视频、可执行文件)来说,这种转换可能会破坏文件的完整性
解决
所以解决的方式也非常简单
- 如果要保证上传的文件内容在服务器端保存之后与原始文件一致,最好同时设置这两个标志,如下所示方式使用:
rz -be
没有出现任何问题,压缩包也按需上传了~
总结
使用场景
- 仅使用
rz
:适合于简单的文件传输需求,尤其是当你只需要传输一些简单的文本文件啊、一个图片文件等。- 使用
rz -be
:推荐用于需要传输二进制文件。这种方式更加可靠,特别适合脚本化任务或自动化文件传输流程。一般压缩包等之类的使用,还是比较推荐用这个的~
- 编写有误还请大佬指正,万分感谢。