Fiz um backup do meu servidor FTP, com lftp e Transmit (aplicativo Mac). Está tudo bem, mas existe um tamanho diferente para arquivos 1-2, mas eles são idênticos.
Primeiro arquivo:
http://dl.dropbox.com/u/229956/deadcow_seo.php
Segundo arquivo:
http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php
Qual é a diferença entre esses dois arquivos?
Respostas:
deadcow_seo.php
usa finais de linha Unix (LF
), enquantodeadcow_seo.php_2.php
usa finais de linha DOS / Windows (CR LF
).O FTP possui vários "modos de transferência", dos quais dois são de uso comum 1 - binário (também chamado de "imagem") e texto (ou "ASCII"). No modo "binário", o arquivo é transferido exatamente como é, byte a byte, enquanto "ASCII" faz com que o arquivo seja interpretado como consistindo de linhas de texto - as terminações de linha são convertidas no padrão de rede
CR LF
ao enviar e convertido nas terminações de linha nativas da máquina ao receber.Transferir arquivos como texto pode fazer algum sentido a princípio, mas só causa problemas mais tarde - na verdade, alguns servidores FTP o removeram completamente ou o tornam equivalente ao binário no lado do servidor. Além disso, a maioria dos editores de texto (exceto o Bloco de notas) pode ler e salvar arquivos nos formatos Windows e Unix.
Basta configurar seu cliente FTP para sempre usar o modo binário - o comando geralmente é
bin
oumode i
, enquanto os clientes gráficos podem ter uma caixa de seleção ou uma lista de tipos de arquivo em suas configurações.1 Alguns modos antigos são "tenex" ( obsoleto por muito tempo , para arquivos baseados em páginas TENEX) e "compactados" (que parece ser definido como um simples algoritmo RLE). Servidores FTP recentes suportam o "modo z" para compactação zlib.
fonte
Você usou o modo de transferência de texto (ou ASCII), que substitui as quebras de linha durante a transferência. Isso geralmente é útil para quando você desenvolve scripts e programas no Windows e transfere os arquivos para Linux ou Mac OS X. Eles simplesmente não funcionam de outra forma, pois o sistema vê dados de lixo no final de cada linha.
Se o arquivo tiver uma única quebra de linha do Windows
\r\n
(ouCRLF
) e você tiver baixado para o Linux ou Mac OS X, ele foi substituído por\n
(ouLF
), que é 1 byte a menos. O uso do FileMerge para comparar os arquivos confirma isso na barra de status:Veja também esta resposta sobre interpretação de dados .
Você pode configurar quais tipos de arquivo são interpretados como texto nas preferências do Transmit:
Você pode remover todas as extensões de arquivo dessa lista e padronizar apenas as quebras de linha do Linux / Mac OS X, ou seja
\n
, mesmo quando estiver usando o Windows. A maioria dos editores é capaz de alterar o modo de final de linha.fonte