Hice una copia de seguridad desde mi servidor FTP, con lftp y Transmit (aplicación Mac). Todo está bien, pero hay un tamaño de archivo diferente para 1-2 archivos, pero son idénticos.
Primer archivo:
http://dl.dropbox.com/u/229956/deadcow_seo.php
Segundo archivo:
http://dl.dropbox.com/u/229956/deadcow_seo.php_2.php
¿Cuál es la diferencia entre estos dos archivos?
Respuestas:
deadcow_seo.php
usa terminaciones de línea Unix (LF
), mientras quedeadcow_seo.php_2.php
usa terminaciones de línea DOS / Windows (CR LF
).FTP tiene varios "modos de transferencia", de los cuales dos son de uso común 1 : binario (también llamado "imagen") y texto (o "ASCII"). En modo "binario", el archivo se transfiere exactamente como es, byte a byte, mientras que "ASCII" hace que el archivo se interprete como una línea de texto: las terminaciones de línea se convierten al estándar de red
CR LF
al enviar, y convertido a las terminaciones de línea nativas de la máquina al recibir.La transferencia de archivos como texto puede tener sentido al principio, pero solo causa problemas más tarde; de hecho, algunos servidores FTP lo han eliminado por completo o lo hacen equivalente a binario en el lado del servidor. Además, la mayoría de los editores de texto (excluyendo el Bloc de notas) pueden leer y guardar archivos en formatos Windows y Unix.
Simplemente configure su cliente FTP para usar siempre el modo binario: el comando suele ser
bin
omode i
, mientras que los clientes gráficos pueden tener una casilla de verificación o una lista de tipos de archivos en su configuración.1 Algunos modos antiguos son "tenex" ( obsoleto durante mucho tiempo , para archivos basados en páginas TENEX) y "comprimido" (que parece estar definido como un algoritmo RLE simple). Los servidores FTP recientes admiten el "modo z" para la compresión zlib.
fuente
Usó el modo de transferencia de texto (o ASCII), que reemplaza los saltos de línea durante la transferencia. Esto a menudo es útil cuando desarrolla scripts y programas en Windows y transfiere los archivos a Linux o Mac OS X. Simplemente no funcionarán de otra manera, ya que el sistema ve datos basura al final de cada línea.
Si el archivo tiene un solo salto de línea de Windows
\r\n
(oCRLF
) y lo descargó a Linux o Mac OS X, se reemplazó por\n
(oLF
), que es 1 byte menos. El uso de FileMerge para comparar los archivos confirma esto en la barra de estado:También vea esta respuesta sobre interpretación de datos .
Puede configurar qué tipos de archivos se interpretan como texto en las preferencias de Transmitir:
Puede eliminar todas las extensiones de archivo de esta lista y simplemente estandarizar en saltos de línea de Linux / Mac OS X, es decir
\n
, incluso cuando usa Windows. La mayoría de los editores pueden cambiar el modo de finalización de línea.fuente