ASCII vs Binario vs Auto?

16

Estoy transfiriendo archivos entre servidores y comencé a notar que algunos de ellos se están modificando para ser una línea larga y continua en lugar de tener los retornos y los saltos de línea que originalmente tenían. Supongo que esto tiene algo que ver con el tipo de transferencia de mi Cliente FTP que originalmente se configuró en "Auto", pero con "Binario" y "ASCII" como opciones adicionales.

En resumen, ¿cuáles son las diferencias entre las formas en que transfiero un archivo de un servidor a otro, y serán estas diferencias capaces de modificar el archivo de la manera que mencioné anteriormente?

Transferir DE Ventanas A Linux.

Sampson
fuente

Respuestas:

27

El modo de transferencia "Binario" de FTP copia archivos exactamente, byte por byte. Simple y directo.

Sin embargo, cuando trae archivos de texto entre diferentes sistemas operativos, esto puede no ser lo que desea: los diferentes sistemas operativos usan diferentes códigos para representar saltos de línea. El modo "ASCII" existe para este propósito: traduce automáticamente todas las terminaciones de línea del formato del sistema de origen al destino.

No estoy seguro acerca de "Auto", pero imagino que parece que la extensión del archivo o algo similar para decidir si se trata de un archivo de texto, e intenta adivinar el modo apropiado.

El modo que desee depende exactamente de lo que esté haciendo con los archivos ... si solo los está copiando para hacer una copia de seguridad, entonces probablemente quiera copiar en modo binario para que sean exactamente iguales cuando luego los restaura al servidor de Windows nuevamente. Si necesitan ser utilizables como archivos de texto (¿tal vez como archivos de configuración para un programa multiplataforma?) En ambos lados, querrá usar el modo ASCII para traducirlos.

EDITAR: Por lo que puedo decir, los archivos FTP de Windows a Linux nunca deberían provocar la desaparición de los saltos de línea ... sin embargo , si los copia en modo ASCII y luego los devuelve al servidor de Windows en modo binario, Linux Es posible que las terminaciones de línea de estilo no se reconozcan en el cuadro de Windows. (El Bloc de notas no los verá; Wordpad sí; YMMV con otro software).

(Hoy en día, tal conveniencia, convertir terminaciones de línea automáticamente, puede parecer extraño en un protocolo tan básico como FTP. Sin embargo, cuando se inventó FTP, el envío de archivos de texto era la norma, y ​​uno de los objetivos del protocolo era hacer que esto lo más fácil posible)

Josh
fuente
Gran descripción de ambos. Me siento mucho menos confundido ahora.
Sampson
gracias, nunca entendí el punto de ese modo ASCII, y ahora definitivamente solo
usaré el
3

De hecho, hay diferencias, y estarán jugando con sus transferencias de archivos de texto no plano a menos que use la opción binaria, generalmente siempre use si está bien :)

Chopper3
fuente
¿No hay forma de restaurarlos? ¿O simplemente necesito transferir con Binary ahora para evitar esto nuevamente en el futuro?
Sampson
Estoy seguro de que podría eliminarlos, pero podría llevar mucho tiempo, estaría tentado de retransmitirlos.
Chopper3
1

¿Desde qué sistema operativo está transfiriendo archivos? Linux / Unix usa saltos de línea diferentes que Windows. Entonces, si genera un archivo en una computadora Linux y lo abre en Windows, puede parecer extraño. Sin embargo, en mi experiencia hay utilidades para corregir esto, si usas Wordpad en Windows en lugar de Bloc de notas, estarás bien.

einstiien
fuente
Estoy autoría de éstos en las ventanas en un IDE, y luego moverlos al servidor Linux. En una fecha posterior, los abro desde el servidor Linux para encontrar la línea larga y continua.
Sampson
Pruebe a ejecutar dos2unixy ver si así se corrige las líneas
einstiien
1

Windows y Unix tienen diferentes bytes al final de las líneas (ventanas hexagonales un 0D 0A, Unix sólo un 0A). Al transferir archivos en modo binario, los bytes de un archivo se pueden mover de un ordenador sin cambios. Esto es necesario para formatos binarios (por ejemplo, archivos ZIP, imágenes, etc.) pero puede generar problemas con los archivos de texto: por ejemplo, notepad.exe en Windows mostrará un archivo de texto con solo saltos de línea de estilo Unix como una línea larga, un editor Unix podría mostrar ^ M al final de cada línea al ver el estilo de Windows.

Por lo tanto, técnicamente para los formatos binarios (zip, jpg, png y muchos otros) debe configurar el FTP en BINARIO, mientras que para los formatos de texto (HTML, PHP, CGI, etc.) debe configurarlo en ASCII.

La mayoría de los buenos programas FTP también tienen una configuración automática, lo que significa que determinarán el modo (BINARIO o ASCII) en función de las extensiones de archivo conocidas, por ejemplo, cambiará automáticamente la transferencia del archivo JPG a BINARIO y enviará / recibirá un archivo PHP en ASCII modo.

Yamodax
fuente