Я сделал резервную копию с моего FTP-сервера, используя lftp и Transmit (приложение Mac). Все хорошо, но есть разный размер файла для 1-2 файлов, но они идентичны.
Первый файл:
http://dl.dropbox.com/u/229956/deadcow_seo.php
Второй файл:
http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php
В чем разница между этими двумя файлами?
Ответы:
deadcow_seo.php
использует окончания строк Unix (LF
), аdeadcow_seo.php_2.php
окончания строк DOS / Windows (CR LF
).FTP имеет несколько «режимов передачи», из которых два находятся в общем пользовании 1 - двоичная (также называемый «образ») и текст (или «ASCII»). В «двоичном» режиме файл передается точно так, как он есть, побайтово, а «ASCII» заставляет файл интерпретироваться как состоящий из строк текста - окончания строк
CR LF
при отправке преобразуются в сетевой стандарт , и преобразуется в родные окончания строки машины при получении.Передача файлов в виде текста поначалу может иметь некоторый смысл, но это только позже вызывает проблемы - фактически, некоторые FTP-серверы полностью удалили его или сделали его эквивалентным двоичному на стороне сервера. Кроме того, большинство текстовых редакторов (исключая Блокнот) могут читать и сохранять файлы в форматах Windows и Unix.
Просто настройте свой FTP-клиент так, чтобы он всегда использовал двоичный режим - обычно это команда
bin
илиmode i
, в то время как графические клиенты могут иметь флажок или список типов файлов в своих настройках.1 Некоторыми старыми режимами являются «tenex» ( давно устаревший, для файлов на основе страниц TENEX) и «сжатый» (который, похоже, определяется как простой алгоритм RLE). Последние FTP-серверы поддерживают «режим z» для сжатия zlib.
источник
Вы использовали текстовый (или ASCII) режим передачи, который заменяет разрывы строк во время передачи. Это часто полезно, когда вы разрабатываете скрипты и программы для Windows и переносите файлы в Linux или Mac OS X. В противном случае они просто не будут работать, так как система видит данные мусора в конце каждой строки.
Если файл имеет один разрыв строки Windows
\r\n
(илиCRLF
) и вы загрузили его в Linux или Mac OS X, он был заменен на\n
(илиLF
), что на 1 байт меньше. Использование FileMerge для сравнения файлов подтверждает это в строке состояния:Также смотрите этот ответ по интерпретации данных .
Вы можете настроить, какие типы файлов будут интерпретироваться как текст в настройках Transmit:
Вы можете удалить все расширения файлов из этого списка и просто стандартизировать в Linux / Mac OS X разрывы строк, т. Е.
\n
Даже при использовании Windows. Большинство редакторов способны изменить режим окончания строки.источник