FTP 中ascii 和bin 的區別和使用方法
在計算機系統中,不同的系統判斷一行是否結束的標誌是不一樣的。
檔案中的一行可以有三種結束的方式:
1.cr
2.nl ---->Unix呼叫一個new line的動作
3.cr lf (or lf cr)
ftp上傳的時候,有bin和ascii兩種區別
使用bin命令傳輸時,什麼也不會改變,按照原始檔傳輸,
而用ascii方式傳輸時會將行結束符從來源的機器所用的行結束符轉換成接收機器所用的行結束符。
例如:ascii可能將一個 cr 轉換成 一個 nl (這通常表示成一個 lf)。
而且ascii指示ftp注意檔案的結束符,在pc中表現為: control-z
(因此,檔案結束符可以結束檔案的內容,但不一定表示檔案的物理結束)
所以,如果檔案本身是二進位制的,應該完全不變的傳輸,這時需要使用bin模式
而對文字檔案而言,就需要轉換。否則有可能得到這樣的結果:
this line ends ^M
and another line ends ^M
and we should have ended^M but did not^M which does^M
not look great.^M^Z
這種情況發生在當來源機器使用lf cr作為行結束符而 lf 是接收機器的行結束符,
並且使用bin模式傳輸檔案時。當不確定使用什麼模式時,使用bin模式。使用bin更快些,
並且不會對檔案產生什麼傷害(因為 bin模式沒有檢查檔案和轉換行結束符)。
有很多軟體可以將文字(ascii)檔案在不同的行結束符之間進行轉換,可以用bin下載後再轉換。
根據vim裡面的help,vim裡dos格式使用單個的
vim使用
如果是unix格式,vim使用單個
在dos格式下讀並在unix格式下儲存,可以將
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7318139/viewspace-926793/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HTTp和ftp的區別HTTPFTP
- ftp命令 binary mode與ascii mode的區別FTPASCII
- 淺談SFTP和FTP的區別FTP
- Linux系統中bin和sbin目錄的主要區別!Linux
- FTP和TFTP的區別與介紹FTP
- oracle group by中cube和rollup字句的使用方法及區別Oracle
- /usr/bin和/usr/sbin有什麼區別
- linux中/bin ,/sbin ,/sur/bin, /sur/sbin的區別Linux
- linux中/bin和/sbin和/usr/bin和/usr/sbinLinux
- FTP主動模式和被動模式的區別FTP模式
- mysql中!=和is not的區別MySql
- JavaScript中for in 和for of的區別JavaScript
- mysql中“ ‘ “和 “ ` “的區別MySql
- Js中for in 和for of的區別JS
- JavaScript中==和===的區別JavaScript
- oracle中的chr()和ascii()函式OracleASCII函式
- PHP 中的 -> 和 :: 的區別PHP
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- C#專案obj和bin檔案什麼區別和聯絡C#OBJ
- 搭建web伺服器和ftp伺服器的區別Web伺服器FTP
- java 中equals和==的區別Java
- SQL中where和on的區別SQL
- Python 中 is 和 == 的區別Python
- Python中is和==的區別Python
- Java中equals和==的區別Java
- oracle中in和exists的區別Oracle
- Linux中“>”和“>>”的區別Linux
- C++中運算子 &和&&、|和|| 的區別C++
- MySQL中is not null和!=null和<>null的區別MySqlNull
- python中#!/usr/bin/python與#!/usr/bin/env python的區別Python
- ../和./和/的區別
- JS中的!=、== 、!==、=== 的用法和區別JS
- java中的==和equal的區別Java
- JS中的!=、== 、!==、===的用法和區別。JS
- java中==和equlas區別Java
- js中!和!!的區別與用法JS
- javascrit中undefined和null的區別JavaUndefinedNull
- swift中Class和Struct的區別SwiftStruct