Ich habe ein Backup von meinem FTP-Server mit lftp und Transmit (Mac-App) erstellt. Alles ist in Ordnung, aber es gibt eine unterschiedliche Dateigröße für 1-2 Dateien, aber sie sind identisch.
Erste Datei:
http://dl.dropbox.com/u/229956/deadcow_seo.php
Zweite Datei:
http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php
Was ist der Unterschied zwischen diesen beiden Dateien?
Antworten:
deadcow_seo.php
Verwendet Unix-Zeilenenden (LF
), währenddeadcow_seo.php_2.php
DOS / Windows-Zeilenenden (CR LF
) verwendet werden.FTP verfügt über mehrere "Übertragungsmodi", von denen zwei üblicherweise verwendet werden: 1 - binär (auch "Bild" genannt) und Text (oder "ASCII"). Im "Binär" -Modus wird die Datei genau so übertragen, wie sie ist, Byte für Byte, während "ASCII" bewirkt, dass die Datei als Textzeile interpretiert wird - die Zeilenenden werden
CR LF
beim Senden in den Netzwerkstandard konvertiert , und wird beim Empfang in die nativen Zeilenenden des Rechners konvertiert.Das Übertragen von Dateien als Text mag zunächst sinnvoll sein, später jedoch nur zu Problemen führen - tatsächlich haben einige FTP-Server die Datei vollständig entfernt oder sie auf der Serverseite als binär deklariert. Außerdem können die meisten Texteditoren (außer Notepad) Dateien sowohl im Windows- als auch im Unix-Format lesen und speichern.
Konfigurieren Sie Ihren FTP-Client einfach so, dass er immer den Binärmodus verwendet - der Befehl lautet normalerweise
bin
odermode i
, während grafische Clients möglicherweise ein Kontrollkästchen oder eine Dateitypliste in ihren Einstellungen haben.1 Einige alte Modi sind "tenex" ( lange veraltet, für TENEX-Seitendateien) und "komprimiert" (was als einfacher RLE-Algorithmus definiert zu sein scheint). Aktuelle FTP-Server unterstützen "mode z" für die zlib-Komprimierung.
quelle
Sie haben den Text- (oder ASCII-) Übertragungsmodus verwendet, der Zeilenumbrüche während der Übertragung ersetzt. Dies ist häufig hilfreich, wenn Sie Skripts und Programme unter Windows entwickeln und die Dateien auf Linux oder Mac OS X übertragen. Andernfalls funktionieren sie einfach nicht, da das System am Ende jeder Zeile fehlerhafte Daten sieht.
Wenn die Datei einen einzelnen Windows-Zeilenumbruch aufweist
\r\n
(oderCRLF
) und Sie sie auf Linux oder Mac OS X heruntergeladen haben, wurde sie durch\n
(oderLF
) ersetzt, was 1 Byte weniger ist. Wenn Sie FileMerge zum Vergleichen der Dateien verwenden, wird dies in der Statusleiste bestätigt:Siehe auch diese Antwort zur Dateninterpretation .
In den Einstellungen von Transmit können Sie konfigurieren, welche Dateitypen als Text interpretiert werden:
Sie können alle Dateierweiterungen aus dieser Liste entfernen und nur bei Linux / Mac OS X-Zeilenumbrüchen standardisieren, dh
\n
auch unter Windows. Die meisten Editoren können den Zeilenende-Modus ändern.quelle