Por que todos os comandos padrão incluem uma letra ASCII?

1

Embora seja fácil criar um arquivo executável chamado ./42 ou mesmo ./カラオケ , não encontro nenhum pacote comum que inclua comandos sem letras. No Ubuntu, por exemplo, apt-file find . | grep -i -e '/[^a-z/_\-]+$' informa que o nome de base de cada arquivo executável tem pelo menos uma letra ou sublinhado ou traço. Os únicos arquivos ou diretórios sem letra que encontrei eram não-executáveis, e geralmente números de versão: docbook/dtd/xml/4.1.2 , /usr/include/c++/4.8.2 , etc.

Quaisquer regras ou padrões publicados restringem como os comandos podem ser nomeados? Ou esta prática meramente cultural?

    
por Camille Goudeseune 11.05.2018 / 18:54

1 resposta

5

Contra-exemplo: o comando [ , o que você usa quando escreve if [ "$foo" = bar ] . É o mesmo que test , exceto pelo fato de que requer o argumento final ] , e é um utilitário padrão .

Sim, é um arquivo executável:

# ls -l "/usr/bin/["
-rwxr-xr-x 1 root root 51920 Mar  2  2017 /usr/bin/[
    
por 11.05.2018 / 19:51