回答:
FTPの「バイナリ」転送モードは、ファイルを1バイトずつ正確にコピーします。シンプルでわかりやすい。
ただし、異なるオペレーティングシステム間でテキストファイルを持ち込む場合、これは望んでいない場合があります。異なるオペレーティングシステムでは、異なるコードを使用して改行を表します。この目的のために「ASCII」モードが存在します。すべての行末をソースシステムの形式から宛先の形式に自動的に変換します。
「自動」についてはわかりませんが、ファイルの拡張子またはそれに類似したものがテキストファイルかどうかを判断し、適切なモードを推測しようとしているように見えます。
どのモードが必要かは、ファイルで何をしているのかによって異なります...単にコピーしてファイルをバックアップする場合は、おそらくバイナリモードでコピーして、まったく同じになるようにします後でそれらを再びWindowsサーバーに復元します。両側でテキストファイル(クロスプラットフォームプログラムの設定ファイルとして)として使用する必要がある場合は、ASCIIモードを使用して翻訳する必要があります。
編集:私が知る限り、WindowsからLinuxへのFTPファイルは改行が消えることはありません... ただし、ASCIIモードでコピーしてからバイナリモードでWindowsサーバーに戻すと、Linuxスタイルの行末は、Windowsボックスで認識されない場合があります。(メモ帳には表示されません。ワードパッドには表示されます。YMMVは他のソフトウェアと共に表示されます。)
(今日、このような便利さ-行末を自動的に変換する-FTPなどの基本的なプロトコルでは奇妙に思えるかもしれません。しかし、FTPが発明されたとき、テキストファイルの送信は標準であり、プロトコルの目標の1つはこれは可能な限り簡単です。)
どのオペレーティングシステムからファイルを転送していますか?Linux / Unixは、Windowsとは異なる改行を使用します。したがって、Linuxコンピューターでファイルを生成してWindowsで開くと、奇妙に見えるかもしれません。これを修正するユーティリティがありますが、私の経験では、メモ帳の代わりにWindowsでワードパッドを使用すれば大丈夫です。
dos2unix
してみて、それが行を修正するかどうかを確認してください
WindowsとUnixでは、行末に異なるバイトがあります(Windowsは0D 0A 16進数、Unixは0Aのみ)。バイナリモードでファイルを転送する場合、ファイルのバイトは変更されずに1台のコンピューターから移動されます。これは、バイナリ形式(ZIPファイル、画像など)に必要ですが、テキストファイルで問題が発生する可能性があります。たとえば、Windowsのnotepad.exeは、Unixスタイルの改行だけを1つの長い行、unixエディターとして表示しますWindowsスタイルを見ると、すべての行の最後に^ Mが表示される場合があります。
技術的には、バイナリ形式(zip、jpg、png、その他の無限)ではFTPをBINARYに設定する必要がありますが、テキスト形式(HTML、PHP、CGIなど)ではASCIIに設定する必要があります。
ほとんどの優れたFTPプログラムには自動設定もあります。つまり、既知のファイル拡張子に応じてモード(BINARYまたはASCII)を決定します。たとえば、JPGファイルの転送を自動的にBINARYに切り替え、ASCIIでPHPファイルを送受信します。モード。