Uma das mais decisões de design escrutinadas e adivinhadas no Unix / Linux é um recurso do sistema de arquivos que está trabalhando a seu favor: qualquer caractere é permitido em um nome de arquivo / diretório, exceto para NUL
(ASCII 000) e barra /
some-script --my-dash-first-file ...
(o último sendo reservado para arquivos caminhos ).
Programas e scripts compatíveis com POSIX e / ou bem escritos lidam com tal leniência, mas, infelizmente, há inúmeros exemplos por aí que não. No entanto, eles tendem a vomitar em um conjunto muito particular de caracteres e esses caracteres não são pontos ou traços. (Espaços e novas linhas são dois dos mais problemáticos.) Na verdade, pontos e traços são muito usados. Ferramentas comuns, linguagens e expressões regulares irão lidar com elas bem ...
... com uma pequena exceção. (Claro, certo?) Eu não vejo nenhuma indicação de que você planeja fazer isso, mas deve-se notar: evitar traços no começo de um nome. Isso é legal, é claro, mas existem muitos programas que lidarão com esses nomes de maneira imprópria, fazendo com que eles sejam interpretados como opções / sinalizadores de linha de comando. Por exemplo, se um script passar o nome do arquivo para outro script como este: Unknown option '--my-dash-first-file'
, então não se surpreenda se vir algo como foo.txt
.
TL; DR Seus esquemas propostos são seguros se você evitar nomes que iniciam com traço.
Palavra adicional de cautela: Embora pontos comuns sejam comuns, especialmente para separar o nome base de um arquivo de sua "extensão" (por exemplo, ..
), pontos em pares são normalmente vistos sozinhos ... onde eles têm um significado especial: o diretório pai do diretório atual ( /foo/bar/../baz
) ou o diretório anterior em um caminho ( %code% ). Portanto, embora isso não cause problemas técnicos, os pontos duplos em um nome são um pouco não convencionais e podem fazer com que alguns usuários façam um exame duplo.