我正在连接到 FTP 服务器来下载一些 gzip 压缩文件,然后我注意到 SIZE 命令有些令人不安,而且我的 google-fu 让我失望了。
ftp> size file0001.xml.gz
213 2524751
ftp> nlist -ltr
...
-rw-r--r-- 1 anon anons 2515727 Jan 30 00:00 file0001.xml.gz
...
如您所见,文件大小不同(2524751 != 2515727)。为什么?
我简要地读了一下RCF0959 文件传输协议 (FTP)并且没有提到 SIZE 命令,后来我发现这是该协议的非标准添加。
为了方便起见,以下是 RFC 中有关字节大小的部分:
byte size There are two byte sizes of interest in FTP: the logical byte size of the file, and the transfer byte size used for the transmission of the data. The transfer byte size is always 8 bits. The transfer byte size is not necessarily the byte size in which data is to be stored in a system, nor the logical byte size for interpretation of the structure of the data.
我在这里遗漏了什么?
谢谢!
马哈茂德
答案1
您是否已将 ftp 切换为binary
模式?ftp 可能会计算行尾更改的大小?
2524751/2515727 * 255 = 255.91469384396638
因此看起来原始文件每 255 个字节都会额外增加 0.9 个字节 - 刚好足够将压缩文件转换\n
为\r\n
。