Auf welcher Basis sollten Sie ACSII- oder Binärübertragungen über FTP auswählen?

7

Mit FTP-Clients, einschließlich der programmgesteuert verwendeten, kann der Benutzer beim Hochladen einer Datei ASCII- oder Binärübertragungen auswählen. Einige Clients unterstützen auch eine gewisse Variante von Auto, bei der Sie die Entscheidung dem FTP-Client überlassen.

Was sind die richtigen Gründe, um ein Format über das andere zu wählen? Wie entscheidet man sich? Wie kann man diese Entscheidung neben den Kunden, die die automatische Erkennung unterstützen, automatisieren?

rcampbell
quelle
Nur ein Kommentar: Automatisierung ist wahrscheinlich eine schlechte Idee, weil sie Sie irgendwann beißen wird und Sie lange Zeit damit verbringen werden, herauszufinden, wo das Problem liegt. Wenn Sie der Meinung sind, dass sich die Verwendung der ASCII-Übertragung lohnt, aktivieren Sie sie bei Bedarf manuell.
Alex J

Antworten:

8

Windows verwendet sowohl eine Carrige-Rückgabe als auch einen Zeilenvorschub, um das Ende einer Zeile in einer Textdatei anzuzeigen. Unix verwendet im Allgemeinen nur einen (ich denke einen Zeilenvorschub). Wenn Sie FTP-Dateien als Text verwenden, konvertiert das FTP-Programm Zeilenenden für Sie. Im Binärmodus wird die Datei genau so übertragen, wie sie ist. Wenn Sie also ein Textdokument übertragen, verwenden Sie ASCII. Alles andere und binäre ist wahrscheinlich die beste Wahl. Wie andere bereits betont haben, werden die meisten modernen Texteditoren ohnehin mit Zeilenenden umgehen (Notepad nicht und auch nicht modern :)), daher ist Binär bei weitem die sicherere Option. Ich stimme auch @njsf zu, ich mag es nicht, wenn Dateien hinter meinem Rücken geändert werden. Ich habe Editoren, die durchaus in der Lage sind, die Zeilenenden zu suchen und zu ersetzen, wenn dies erforderlich wird.

pipTheGeek
quelle
4

In der heutigen Zeit, in der die meisten Texteditoren die Zeilenenden von Unix / Dos / Mac automatisch erkennen und anpassen, finde ich kaum eine Rechtfertigung für die Verwendung von ASCII-FTP-Übertragungen. Ich benutze immer binär.

Ich möchte nicht, dass die Dateien unter der Decke geändert werden.

Ich neige dazu, scp jetzt viel mehr als ftp zu verwenden, und scp kopiert nur die Bits ...

njsf
quelle
2

Verwenden Sie immer binär. Führen Sie die Konvertierung bei Bedarf von Hand durch - sie wird wahrscheinlich nie benötigt.

Der ASCII-Modus führt nur eine Zeilenendkonvertierung zwischen Systemen mit unterschiedlichem Gehorsam durch. Es ist heutzutage absolut sinnlos. Die meisten Editoren passen sich an, XML-Parser ignorieren sie meistens. Sie haben nur Probleme beim Kompilieren von .c-Dateien oder beim Ausführen von sh-Dateien unter Unix mit MS-DOS-Zeilenende. Dies geschieht jedoch normalerweise nur aufgrund einer falsch platzierten Übertragung im ASCII-Modus .

Sagen Sie einfach Nein zum ASCII-Modus. Moderne FTP-Clients verwenden ohnehin standardmäßig BINARY.

niXar
quelle
1

Persönlich neige ich dazu, bei jeder Übertragung Binärdateien zu verwenden. Ich wurde einmal mit einer Datei gestochen, die per Binärübertragung von einem Windows-Computer auf einen Unix-Computer gestellt wurde. Infolgedessen hatte die txt-Datei immer noch CR LF-Endungen.

Der ASCI-Modus betrachtet Quell- und Zielplattformen und führt eine Übersetzung am Zeilenende durch. Die resultierende Datei hatte also CR CR LF-Zeilenenden (LF wurde von ASCI in CR LF übersetzt, da es Unix war -> Windows).

Klingt kleinlich - aber es war eine 20-Gbit-Protokolldatei, und ich hatte nur ein Zeitfenster, in dem ich sie sammeln konnte.

Ich verwende EOL-Konvertierungsprogramme auf dem lokalen Computer, wenn dies erforderlich ist.

BEARBEITEN: Ich habe die Datei vom Unix-Host wieder auf Windows übertragen

Iain
quelle
1

Beachten Sie, dass das Übertragen von Text auf einige Systeme durch Verwendung des Textmodus (nicht wirklich ASCII) beschleunigt wird, da sie den Zeichensatz nicht verwenden. Zum Beispiel EBCDIC auf IBM Mainframes und ähnlichen Systemen.

Solange beide Systeme denselben Basiszeichensatz verwenden, ist Binär wahrscheinlich weniger problematisch.

Christopher
quelle
Selbst dann ist es wahrscheinlich sicherer, manuell zu konvertieren, da die Datei gelegentlich eine andere Codierung oder ähnliches hat ...
Sleske
0

Wenn Sie wissen, wie Windows und Unix neue Zeilen in Textdateien codieren und was der Unterschied zwischen dem Binär- und dem ASCII-Übertragungsmodus ist, können Sie diese Frage selbst beantworten.

mateusza
quelle
Es ist das erklärte Ziel von Joel und Jeff, Stackoverflow (und Serverfault) zu einer Wikipedia-ähnlichen Ressource zu machen. Dies bedeutet, dass es sich lohnt, dieses Wissen in den Systemen hier zu haben, auch wenn Antworten im gesamten Internet zu finden sind.
Glocke