cat 命令在所有类 UNIX 系统上都可用。 它将从键盘接收的数据复制到一个文件。 Minicom 和其他终端仿真器具有 “ASCII 上传” 功能,该功能会通过串行链路发送文件,就像手动键入一样。
remote bash$ cat > upload.txt |
Alt-S Upload ascii [ascii upload - Press CTRL-C to quit] |
等待上传完成…
ASCII upload of "upload.txt"
10.0 Kbytes transferred at 3900 CPS... Done.
READY: press any key to continue... |
Ctrl-D remote bash$ |
在没有硬件流控制的情况下,ASCII 上传可能会丢失偶尔的字符。
要上传二进制文件,需要将它们编码为 ASCII,上传它们,然后再将它们解码回二进制格式。
localhost bash$ uuencode upload.bin < upload.bin > upload.txt |
Alt-S Upload ascii [ascii upload - Press CTRL-C to quit] |
等待上传完成…
ASCII upload of "upload.txt"
10.0 Kbytes transferred at 3900 CPS... Done.
READY: press any key to continue... |
Ctrl-D remote bash$ |
remote bash$ uudecode < upload.txt |
您可以使用校验和程序(例如 sum、cksum 或 md5sum)来检测传输错误。 在从本地计算机发送文件之前和在远程计算机上接收文件之后,打印文件的校验和。
localhost bash$ cksum upload.bin 1719761190 76 upload.bin |
remote bash$ cksum upload.bin 1719761190 76 upload.bin |
有许多校验和程序。 sum 命令应谨慎使用,因为存在 BSD 和 System V UNIX 版本,它们会给出不同的结果。 cksum 是 POSIX 标准开发者为纠正这种混乱局面所做的尝试:它在所有 POSIX 机器上对于同一文件给出相同的结果。
如果原始文件和上传文件的校验和不匹配,则必须重新上传该文件。 如果链路嘈杂且文件很大,那么您可能永远无法成功上传。 在这种情况下,需要将文件分成许多小部分,上传一部分,检查其校验和,如果校验和正确,则继续下一部分。
这听起来像是应该自动化的操作。 这时,Xmodem 协议登场了。