Mesmo arquivo, tamanho de arquivo diferente

12

Eu fiz um backup do meu servidor FTP, com lftp e Transmit (Mac app). Tudo está bem, mas há um tamanho de arquivo diferente para 1-2 arquivos, mas eles são idênticos.

Primeiro arquivo:

link

Segundo arquivo:

link

Qual é a diferença entre esses dois arquivos?

    
por user66638 12.01.2012 / 19:27

2 respostas

25

deadcow_seo.php usa finais de linha do Unix ( LF ), enquanto deadcow_seo.php_2.php usa finais de linha do 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 por byte, enquanto "ASCII" faz com que o arquivo seja interpretado como consistindo em linhas de texto - os finais de linha são convertidos no padrão de rede CR LF quando enviando, e convertido para as terminações de linha nativas da máquina ao receber.

A transferência de arquivos como texto pode fazer algum sentido no início, mas só causa problemas mais tarde - na verdade, alguns servidores FTP o removeram completamente ou o tornaram equivalente a binário no lado do servidor. Além disso, a maioria dos editores de texto (com exceção do Notepad) 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 ou mode 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 "dezex" ( longo obsoleto, para arquivos baseados em páginas TENEX) e "compactados" (que parece ser definido como um simples RLE algoritmo). Servidores FTP recentes suportam "modo z" para compactação zlib.

    
por 12.01.2012 / 19:44
12

Você usou o modo de transferência texto (ou ASCII), que substitui as quebras de linha durante a transferência. Isso geralmente é útil quando você desenvolve scripts e programas no Windows e transfere os arquivos para o Linux ou Mac OS X. Eles simplesmente não funcionarão de outra forma, já que o sistema vê dados ilegíveis no final de cada linha.

Se o arquivo tiver uma única quebra de linha do Windows, \r\n (ou CRLF ) e você baixou para o Linux ou Mac OS X, ele foi substituído por \n (ou LF ), que é 1 byte menos. Usar o FileMerge para comparar os arquivos confirma isso na barra de status:

enter image description here

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 Transmitir:

enter image description here

Você pode remover todas as extensões de arquivo dessa lista e padronizar 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 finalização de linha.

    
por 12.01.2012 / 19:44