
我正在嘗試使用 Perl 將檔案傳送到 FTP 伺服器。該程式幾乎運作良好,但檔案大小發生了變化(遠端主機上的檔案大小與本機不同)。經過檢查,我意識到:這不是我的Perl腳本的錯誤,而是FTP客戶端的錯誤。
假設:我有一台電腦(A)運行 Cent-Os 5。802_20130511_111637.wav- 207,084 位元組)到遠端電腦(乙)。 (B) 上的 FTP 伺服器是 File Zillar 0.9.41。
我執行了來自 (A) 控制台的命令(為了安全起見,我更改了主機名稱和使用者名):
[root@abcxyz 1234]# ls -l
total 464
-rw------- 1 asterisk asterisk 99564 May 8 10:39 0913255236_20130508103929.wav
-rw------- 1 asterisk asterisk 127084 May 7 22:42 0918272810_20130507224217.wav
-rwxrwxrwx 1 asterisk asterisk 16488 May 7 16:45 1234.wav
-rw-r--r-- 1 asterisk asterisk 207084 May 11 11:17 802_20130511_111637.wav
[root@abcxyz 1234]# ftp
ftp> open xxx.xxx.xxx.xxx
Connected to xxx.xxx.xxx.xxx.
220 FileZilla Server version 0.9.41 beta
502 GSSAPI authentication not implemented
504 Auth type not supported
KERBEROS_V4 rejected as an authentication type
Name (xxx.xxx.xxx.xxx:root): my_user_name
331 Password required for my_user_name
Password:
230 Logged on
Remote system type is UNIX.
ftp> put 802_20130511_111637.wav
local: 802_20130511_111637.wav remote: 802_20130511_111637.wav
227 Entering Passive Mode (xxx,xxx,xxx,xxx,195,159)
150 Connection accepted
226 Transfer OK
207503 bytes sent in 0.029 seconds (7.1e+03 Kbytes/s)
ftp>
如你看到的。檔案大小(第 6 行)為 207084 位元組。但大小(幾乎在最後一行)是 207503 位元組。
確實,透過FTP發送後檔案大小發生了變化。我已將上面的兩個檔案(一個來自 (A),一個來自 (B))下載到另一台電腦(執行 Windows)。 (A) 的可以玩,(B) 的不行。
如果我做錯了什麼,請糾正我。儘管我使用了原生 FTP 用戶端,但為什麼檔案大小發生了變化?
答案1
您從未發出過該bin
命令(或您的客戶端使用的任何命令),因此它正在執行行結束翻譯。