Que razões técnicas existem para não usar caracteres de espaço em nomes de arquivos?

Que razões técnicas existem para não usar caracteres de espaço em nomes de arquivos?

Alguém que conheço expressou irritação hoje em relação àqueles de nós que tendem a não usar espaços em nossos nomes de arquivos, por exemplo NamingThingsLikeThis.txt- apesar da maioria dos sistemas operacionais modernos suportarem espaços em nomes de arquivos.

Existemrazões técnicasque ainda é comum ver nomes de arquivos sem espaços (apropriados)? Em caso afirmativo, quais são as razões técnicas pelas quais os espaços nos nomes dos arquivos são evitados ou desencorajados e em que circunstâncias eles são relevantes?

A razão mais óbvia que consegui pensar, e por que normalmente evito isso, são as aspas extras exigidas na linha de comando ao lidar com esses arquivos. Existem outras razões técnicas significativas?

Responder1

Caracteres de espaço em branco em nomes de arquivos podem ser uma verdadeira dor de cabeça no proverbial em muitos contextos na linha de comando e em scripts, onde você deve ter cuidado para garantir que eles sejam escapados corretamente, para não parecerem separadores dos comandos que você está correndo.

É apenas mais seguro não tê-los lá, mesmo se você tiver certeza de que file/dir/what-ever nunca será usado em tal contexto.

Isso e velhos hábitos são difíceis de morrer.

Responder2

Além das demais respostas sobre linha de comando e velhos hábitos, também existem muitos protocolos de rede que requerem cuidado especial ao lidar com nomes de arquivos contendo espaços.

(Se você já tentou baixar "Product List.pdf" de um site e acabou com um arquivo chamado apenas "Product", você foi mordido por isso, porque o programador do outro lado não sabia ou não podia Não consigo descobrir as regras de cotação para o cabeçalho http Content-Disposition.)

Responder3

Muitas das razões são históricas. Isso não significa que eles não façam sentido hoje.

Problemas de portabilidade

Ao nomear um arquivo, você também pode considerar como outros sistemas (de arquivos) tratarão esse nome de arquivo. Um caractere no nome de um arquivo pode ser adequado para o seu sistema, mas pode ser um problema para outro sistema.

Portanto, contanto que houvesse a menor possibilidade de você querer acessar o arquivo facilmente a partir de um sistema mais antigo, você escolheria apenasseguropersonagem. Isso pode incluir a inicialização em um sistema de recuperação antigo que você mantinha ou o medo de que as versões recentes do Windows ainda sejam de alguma forma baseadas no MS-DOS.

Comprimento

Um sistema de arquivos pode limitar o comprimento que um arquivo pode ter. Isto foi ainda mais sério durante a época em que o MS-DOS estava limitado a8.3 nomes de arquivos. Portanto, deixar espaços de fora permitiu que você colocasse caracteres mais significativos no nome.

Vários outros sistemas de arquivos também definiram limites estritos no comprimento do nome de arquivo. A Wikipedia tem uma tabela noartigo sobre comparação de sistemas de arquivospara quem quer os detalhes.

Personagens Reservados

O MS-DOS também definiu o caractere de espaço como um caractere reservado. Isto se deve ao fato de que o caractere de espaço foi usado parapreenchimento no FAT. Além disso, o MS-DOS não fornecia um sistema de escape no shell.

Interpretação de linha de comando

A maioria das linhas de comando que conheço usam ocaractere de espaço como delimitador de parâmetro. Ao negligenciar o escape adequado de um nome de arquivo, isso pode ter consequências terríveis, pois partes do nome do arquivo podem ser interpretadas como parâmetros para o aplicativo que você deseja chamar.

Considere a diferença entre

rm foo bar

e

rm "foo bar"

O artigo da WikiPedia vinculado acima ainda aponta a ambigüidade introduzida pela falta para escapar adequadamente de um comando:

A ambigüidade pode ser evitada proibindo espaços incorporados em nomes de arquivos e diretórios em primeiro lugar (por exemplo, substituindo-os por sublinhados '_') ou, se suportado pelo interpretador de linha de comando e pelos programas que tomam esses parâmetros como argumentos, colocando um nome com espaços incorporados entre aspas ou usando um caractere de escape antes do espaço, geralmente uma barra invertida ('\'). Por exemplo

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

é ambíguo (o "nome do programa" faz parte do nome do programa ou é dois parâmetros?); no entanto

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

e Longo\ caminho/Long\ programa\ nome Parâmetro\ um Parâmetro\ dois ...

não são ambíguos.

Localizadores Uniformes de Recursos (URL)

Ao tentar descrever a localização de um arquivo, usando uma URL, é necessário escapar espaços.

Os personagens podem ser inseguros por vários motivos. O caractere de espaço não é seguro porque espaços significativos podem desaparecer e espaços insignificantes podem ser introduzidos quando URLs são transcritos ou digitados ou submetidos ao tratamento de programas de processamento de texto.

Fonte:RFC1738

Portanto, um espaço deve ser substituído por um %20. Isso torna a parte do nome do arquivo da URL menos legível e, portanto, faz com que as pessoas a evitem em primeiro lugar.

Responder4

Às vezes, os espaços podem representar um problema ao lidar com a linha de comando, ou ao usar sistemas operacionais mais antigos, ou ao escrever programas que serão compilados em sistemas operacionais diferentes, ou quando... há muitos motivos que podem ser problemáticos, e eu não realmente sinto que é um problema escrever o arquivo como:arquivo sem espaços em branco.txtouarquivo_sem_espaços.txt. Eu prefiro o dask porque o sublinhado às vezes pode ficar invisível ao lidar, por exemplo, com uma fonte sublinhada.

Mas principalmente, é uma questão de hábito da velhice. O que eu não sinto que seja suficienteprómotivos para abandonar.


Uma nota adicional, possivelmente não relacionada, mas mesmo assim vou colocá-la aqui. Pessoas que nomeiam seus arquivos com espaços geralmente não dão muita importância a isso; aqueles que muitas vezes não sabem por que é bom evitá-los em nomes de arquivos.
E, todos podemos concordar, não há nada pior do que um arquivo com o nome "Prezado senhor ou senhora, estou escrevendo esta carta para informá-lo sobre yo.doc".

Não apenas espaços - o comprimento do arquivo também conta, e IMHO, não deve ultrapassar, digamos, 30 caracteres. Nomes de arquivos longos com espaços internos também são uma bênção ao gravar CDs, DVDs e outros que precisam ser lidos em sistemas operacionais mais antigos e entre plataformas Win e *nix.

informação relacionada