FreeToGenerate.com

O Windows reserva 28 nomes de dispositivo. Quase toda lista diz 22.

O nome que você quer usar

Um hífen por padrão. O que você digitar aqui é usado literalmente, então escolha algo que o sistema de destino aceite.

24 / 255

O que precisou mudar

  • Foram trocados caracteres que este sistema não aceita num nome. O Windows proíbe nove — menor que, maior que, dois-pontos, aspas duplas, barra, barra invertida, barra vertical, interrogação e asterisco —, enquanto o Linux proíbe só a barra.
  • Um ponto final foi removido. O Windows não aceita nomes terminados em ponto, embora um ponto inicial seja perfeitamente válido, que é o que permite o .gitignore.

Quais sistemas recusam o nome que você digitou

Windows, macOS

O que cada sistema proíbe

WindowsmacOSLinux
Caracteres proibidos< > : " / \ | ? */ :/
Nomes reservados28NãoNão
Ponto ou espaço no fimSimNãoNão

As regras do Windows vêm do Naming Files, Paths, and Namespaces da Microsoft; as outras são as regras POSIX mais os dois-pontos que o macOS herdou do HFS. Nada é enviado — a renomeação acontece nesta aba. (260)

Os 28 nomes reservados do Windows

CONPRNAUXNULCOM1COM2COM3COM4COM5COM6COM7COM8COM9COM¹COM²COM³LPT1LPT2LPT3LPT4LPT5LPT6LPT7LPT8LPT9LPT¹LPT²LPT³

Não podem ser usados como nome de arquivo no Windows, com ou sem extensão, em nenhum diretório. Quase toda lista publicada traz 22.

Os seis marcados são os que quase nenhuma lista inclui. A documentação da Microsoft traz COM e LPT escritos com algarismos sobrescritos e explica o porquê: o Windows trata esses caracteres como algarismos, então eles formam nomes de dispositivo válidos e ficam reservados em todo lugar. A própria documentação dá o teste: escrever em COM com um um sobrescrito não chega a criar arquivo nenhum.

Também disponível em: English · Español · Français · العربية

Caracteres não permitidos em nomes de arquivo

Cole um nome, escolha o sistema que interessa e receba um que realmente salva, com cada mudança explicada em vez de aplicada em silêncio.

O que torna um nome de arquivo ilegal?

Menos do que você imagina em alguns sistemas e muito mais do que imagina em outros — e é aí que está o problema. O Linux proíbe exatamente duas coisas dentro de um nome: o byte nulo e a barra. Todo o resto vale: dois-pontos, interrogações, pontos finais, um arquivo chamado NUL. O macOS acrescenta mais um, os dois-pontos, herdados do HFS, onde esse caractere era o separador de caminhos; é por isso que o Finder troca dois-pontos e barra ao lhe mostrar um nome.

O Windows é o rigoroso. Proíbe nove caracteres imprimíveis — menor que, maior que, dois-pontos, aspas duplas, barra, barra invertida, barra vertical, interrogação e asterisco —, além do byte nulo e de todos os caracteres de controle de 1 a 31. Recusa nomes terminados em ponto ou em espaço. E reserva um conjunto de nomes de dispositivo que não podem ser usados como nome de arquivo em diretório nenhum.

Então um nome que funciona na sua máquina pode falhar na de um colega, ou dentro de um zip que ele abra no Windows. Este sanitizador aplica as regras que você pedir e, por padrão, aplica todas de uma vez.

Como usar

  1. Digite ou cole o nome. Só o nome, não o caminho inteiro: as regras que importam aqui valem para um componente de cada vez.
  2. Escolha quais regras aplicar. “Seguro em todo lugar” é o padrão e é estritamente a opção mais agressiva; os sistemas isolados estão ali para quando você sabe exatamente onde o arquivo vai parar.
  3. Leia o que mudou, não só o resultado. Cada mudança aparece com o motivo, e um painel diz qual dos três sistemas teria recusado o nome que você digitou.

São 28 nomes reservados, não 22

Quase toda lista de nomes reservados do Windows traz os mesmos 22: CON, PRN, AUX, NUL, de COM1 a COM9 e de LPT1 a LPT9. A documentação da Microsoft inclui mais seis, e são justamente os que vale conhecer, porque não há como adivinhá-los.

Esses seis são COM e LPT escritos com algarismos sobrescritos, os caracteres ¹, ² e ³ do ISO/IEC 8859-1. A Microsoft explica o motivo numa nota da mesma página: o Windows reconhece esses caracteres como algarismos e os trata como parte válida de um nome de dispositivo COM ou LPT, de modo que ficam reservados em todos os diretórios. A documentação até dá o teste, observando que escrever em COM com um um sobrescrito não chega a criar arquivo.

A reserva também sobrevive à extensão, e isso pega mais gente. NUL.txt e NUL.tar.gz equivalem ambos a NUL, porque a regra vale para tudo que vem antes do primeiro ponto, não para o trecho anterior ao último. Uma ferramenta que corte pelo último ponto perde o segundo caso; esta corta pelo primeiro.

O que esta ferramenta não faz

Ela sanitiza um nome, não um caminho. O limite de 260 caracteres do Windows vale para o caminho inteiro, e nenhuma ferramenta que olhe um único nome sabe em que profundidade ele vai acabar; os 255 caracteres que esta página impõe são o limite por nome que a maioria dos sistemas de arquivos aplica à parte. Esses dois números são confundidos o tempo todo e não medem a mesma coisa.

Ela também não sabe dizer o que o seu sistema de arquivos específico vai aceitar. As regras aqui são as documentadas para Windows, POSIX e macOS, mas um compartilhamento de rede, um pendrive em FAT ou um cliente de sincronização na nuvem podem ser mais rigorosos, às vezes de formas não documentadas. Um nome que esta página chame de seguro em todo lugar é seguro diante das regras publicadas, que é tudo o que uma ferramenta estática pode prometer.

E ela preserva de propósito o ponto inicial. A documentação da Microsoft diz com todas as letras que um ponto é aceitável como primeiro caractere de um nome, então .gitignore e .env são legais no Windows; o problema é só o ponto final. Removê-lo, como fazem alguns sanitizadores, quebraria os dotfiles sem motivo.

Por que é grátis?

As regras são algumas centenas de bytes de tabelas e a renomeação acontece no seu próprio navegador. Nada do que você digita é enviado, nada é registrado e não há conta a criar.

Sem cadastro, sem limites e sem marca d'água em nada que você copiar.