Os nomes de arquivos Unix são apenas sequências de bytes e podem conter qualquer byte, exceto /
e NUL
em qualquer posição. Não há um conceito embutido de uma "extensão", como existe no Windows e em seus sistemas de arquivos, e, portanto, não permite que os nomes de arquivos terminem (ou iniciem) com qualquer caractere que possa aparecer neles geralmente - um .
é não é mais especial que um x
.
Por que o Unix permite arquivos com um período no final do nome? "Uma seqüência de bytes" é uma definição simples e não-excludente de um nome quando não há razão motivadora para contar algo, o que não havia. Fazer e aplicar uma regra para excluir algo especificamente é mais trabalho.
Existe algum uso para isso? Se você quiser fazer um arquivo com esse nome, com certeza. Existe um uso para um nome de arquivo terminado em x
? Eu não posso dizer que eu geralmente faria um nome de arquivo com um .
no final, mas ambos .
e x
são explicitamente parte do conjunto de caracteres de nome de arquivo portátil que é necessário para ser universalmente suportado, e nenhum deles é especial de forma alguma, por isso, se eu tivesse um uso para ele (talvez para um mecanismo mecanicamente- codificação gerada), então eu poderia, e eu poderia confiar nele trabalhando.
Além disso, os nomes de arquivo especiais .
(ponto) e ..
(ponto-ponto), que se referem aos diretórios atual e pai, são obrigatório pelo POSIX, e ambos terminam com .
. Qualquer código que lide com nomes de arquivos em geral precisa abordá-los de qualquer maneira.