Книга: Linux глазами хакера
10.1.3. Передача файлов
10.1.3. Передача файлов
Так как протокол FTP предназначен для работы с разными системами, то для передачи файлов используются два основных режима — текстовый (ASCII) и бинарный.
Допустим, что вы хотите переслать текстовый файл с компьютера Unix на компьютер Windows. В Unix для текстовых файлов в качестве идентификатора конца строки используется символ <CR> (Carriage Return, возврат каретки, код 13). В Windows то же самое обозначается двумя символами <CR> и <LF> (Line Feed, перевод строки, код 10). Если после передачи открыть в Windows этот текстовый файл, то все строки сольются в одну, потому что нет символа <LF>.
На рис. 10.2 показан файл sendmail.cf (используется для конфигурации сервиса Sendmail), скаченный с Linux-сервера в бинарном режиме и открытый в программе Windows Notepad. Как видите, очень тяжело разобрать, что здесь и для чего, а вместо перехода на новую строку можно увидеть нечитаемый символ <CR> в виде квадрата.
Рис. 10.2. Файл sendmail.cf, полученный с Linux-сервера в бинарном режиме
Чтобы решить проблему конца строки, необходимо скачивать файл с сервера в символьном (ASCII) режиме. В этом случае текст передается построчно, и ОС-получатель сама добавляет нужные символы перевода строки. На рис. 10.3 можно увидеть файл sendmail.cf, полученный с сервера в ASCII- режиме. Теперь информация стала читабельной, и все символы перехода на новую строку расставлены самой ОС верно, в соответствии со своими внутренними правилами.
Рис. 10.3. Файл sendmail.cf, полученный с Linux-сервера в ASCII-режиме
Бинарные файлы (например, картинки или музыку) необходимо передавать в двоичном режиме. Здесь нет различий, в какой ОС создан объект, и он будет правильно воспринят в любой операционной системе, умеющей работать сданным форматом.
Если передать двоичный файл из Linux в Windows в текстовом режиме, то любой символ <CR> (а он может встретиться и в двоичном файле) будет заменен на пару символов <CR> и <LF>, и после этого бинарный файл может стать нечитаемым.
- Передача прав
- Глава 10 Передача файлов
- 3.1.2. Безопасность файлов
- 5.3.8. Защищенная передача данных
- 10.6.7. Передача сигналов: kill() и killpg()
- Пример 17-7. Передача пары файлов во входящий каталог на "Sunsite"
- 17.4.6. Передача файловых дескрипторов
- Передача файлов по сети Интернет (FTP)
- Пример 17-10. Блочный комментарий
- Источники информации
- 3.1.1. Основные команды