¿Qué razones técnicas existen para no utilizar caracteres de espacio en los nombres de archivos?

¿Qué razones técnicas existen para no utilizar caracteres de espacio en los nombres de archivos?

Alguien que conozco expresó irritación hoy con respecto a aquellos de nosotros que tendemos a no usar espacios en nuestros nombres de archivos, por ejemplo NamingThingsLikeThis.txt, a pesar de que la mayoría de los sistemas operativos modernos admiten espacios en los nombres de archivos.

Hayrazones técnicas¿Que todavía es común ver nombres de archivos sin espacios (apropiados)? Si es así, ¿cuáles son estas razones técnicas por las que se evitan o desaconsejan los espacios en los nombres de archivos y en qué circunstancias son relevantes?

La razón más obvia que se me ocurre, y por la que normalmente lo evito, son las comillas adicionales que se requieren en la línea de comando cuando se trata de este tipo de archivos. ¿Existen otras razones técnicas importantes?

Respuesta1

Los caracteres de espacio en blanco en los nombres de archivos pueden ser un verdadero dolor de cabeza en el proverbial en muchos contextos en la línea de comandos y en los scripts, donde hay que tener cuidado para asegurarse de que estén correctamente escapados para que no parezcan separadores de los comandos que está correr.

Es más seguro no tenerlos allí, incluso si está seguro de que el archivo/dir/lo que sea nunca se utilizará en ese contexto.

Eso y los viejos hábitos cuestan morir.

Respuesta2

Además de las otras respuestas sobre la línea de comandos y los viejos hábitos, también existen muchos protocolos de red que requieren especial cuidado al tratar con nombres de archivos que contienen espacios.

(Si alguna vez intentó descargar "Product List.pdf" de un sitio web y terminó con un archivo simplemente llamado "Producto", esto lo mordió porque el programador en el otro extremo no sabía o no podía No descifraré las reglas de cotización para el encabezado http Content-Disposition).

Respuesta3

Muchas de las razones son históricas. Eso no significa que hoy no tengan sentido.

Problemas de portabilidad

Al nombrar un archivo, es posible que también deba considerar cómo otros sistemas (de archivos) tratarán ese nombre de archivo. Un carácter en un nombre de archivo puede estar bien para su sistema, pero puede ser un problema para otro sistema.

Por lo tanto, siempre que exista la más mínima posibilidad de que desee acceder fácilmente al archivo desde un sistema más antiguo, elegirá sóloseguropersonaje. Esto puede incluir el inicio de un sistema de recuperación antiguo que conservaba o el temor de que las versiones recientes de Windows todavía estén basadas de alguna manera en MS-DOS.

Longitud

Un sistema de archivos puede limitar la longitud que puede tener un archivo. Esto era aún más grave durante los días en que MS-DOS estaba limitado a8.3 nombres de archivos. Por lo tanto, omitir espacios le permitió poner caracteres más significativos en el nombre.

Varios otros sistemas de archivos también definieron límites estrictos en la longitud de sus nombres de archivos. Wikipedia tiene una tabla en elartículo sobre comparación de sistemas de archivospara aquellos que quieran los detalles.

Personajes reservados

MS-DOS también definió el carácter de espacio como carácter reservado. Esto se debe al hecho de que el carácter de espacio se utilizó pararelleno en la FAT. Además, MS-DOS no proporcionaba un sistema de escape en el shell.

Interpretación de línea de comandos

La mayoría de las líneas de comando que conozco usan elcarácter de espacio como delimitador de parámetro. Cuando no se escapa correctamente un nombre de archivo, puede tener consecuencias nefastas, ya que partes del nombre de archivo pueden interpretarse como parámetros de la aplicación a la que desea llamar.

Considere la diferencia entre

rm foo bar

y

rm "foo bar"

El artículo de WikiPedia vinculado anteriormente incluso señala la ambigüedad introducida al no poder escapar correctamente de un comando:

La ambigüedad se puede evitar prohibiendo en primer lugar los espacios incrustados en los nombres de archivos y directorios (por ejemplo, reemplazándolos con guiones bajos '_') o, si lo admite el intérprete de línea de comandos y los programas que toman estos parámetros como argumentos, encerrando un nombre con espacios incrustados entre comillas o usando un carácter de escape antes del espacio, generalmente una barra invertida ('\'). Por ejemplo

Long path/Long program name Parameter one Parameter two ...

es ambiguo (¿el "nombre del programa" es parte del nombre del programa o dos parámetros?); sin embargo

Long_path/Long_program_name Parameter_one Parameter_two ...,
LongPath/LongProgramName ParameterOne ParameterTwo ...,
"Long path/Long program name" "Parameter one" "Parameter two" ...

y Long\ ruta/Long\ programa\ nombre Parámetro\ un Parámetro\ dos ...

no son ambiguos.

Localizadores uniformes de recursos (URL)

Al intentar describir la ubicación de un archivo mediante una URL, es necesario utilizar espacios como escape.

Los personajes pueden resultar inseguros por varias razones. El carácter de espacio no es seguro porque los espacios significativos pueden desaparecer y se pueden introducir espacios insignificantes cuando las URL se transcriben, se componen o se someten al tratamiento de programas de procesamiento de textos.

Fuente:RFC1738

Por lo tanto, un espacio debe ser reemplazado por un %20. Esto hace que la parte del nombre del archivo de la URL sea menos legible y, por lo tanto, hace que la gente lo evite en primer lugar.

Respuesta4

A veces, los espacios pueden presentar un problema cuando se trabaja en la línea de comandos, o cuando se utilizan sistemas operativos más antiguos, o cuando se escriben programas que se compilarán en diferentes sistemas operativos, o cuando... hay muchas razones que pueden presentar problemas, y yo no Realmente no siento que sea tan problemático escribir el archivo como:archivo-sin-espacios-en blanco.txtoarchivo_sin_espacios en blanco.txt. Prefiero el guión bajo porque a veces el guión bajo puede volverse invisible cuando se trata, por ejemplo, de una fuente subrayada.

Pero sobre todo es una cuestión de costumbre de la vejez. que no siento que sean suficientesProrazones para abandonar.


Una nota adicional, posiblemente no relacionada, pero de todas formas la pondré aquí. Las personas que nombran sus archivos con espacios normalmente no piensan mucho en eso; los que no suelen saber un poco de por qué es bueno evitarlos en los nombres de archivos.
Y todos podemos estar de acuerdo en que no hay nada peor que un archivo llamado "Estimado señor o señora, le escribo esta carta para informarle sobre yo.doc".

No solo los espacios: la longitud del archivo también cuenta y, en mi humilde opinión, no debe tener más de, digamos, 30 caracteres. Los nombres de archivos largos con espacios en el interior también son una bendición al grabar CD, DVD y similares que deben leerse en sistemas operativos más antiguos y entre plataformas Win y *nix.

información relacionada