Minha empresa revende um aplicativo cujo nome da marca está em maiúsculas e minúsculas, por exemplo "ApplicationName".
O instalador do aplicativo cria todos os caminhos e nomes de arquivos neste padrão. Por exemplo, o diretório principal é /opt/ApplicationName
, o arquivo init é chamado, ApplicationName
então eu tenho que executar service ApplicationName status
e assim por diante.
Para mim, isso quebra todas as convenções sensatas e eu sinto que os arquivos e diretórios devem estar em letras minúsculas (há precedentes em outros aplicativos como o MySQL, cujos arquivos e diretórios são chamados mysql
, mesmo aplicativos como Apache e Tomcat eliminam o precedente Letra Maiúscula).
Se eu levantar isso como um relatório de bug, gostaria de apresentar um argumento mais forte do que apenas "acho que está errado". Então, é ditado em algo como o padrão POSIX que arquivos do sistema como este devem estar em letras minúsculas?
fonte
Respostas:
O padrão POSIX possui uma seção com diretrizes para utilitários em conformidade (por exemplo, "como aqueles escritos especificamente para um sistema local ou que são componentes de um aplicativo maior") que diz
[ref: 12.2 Diretrizes de sintaxe para utilitários ]
Não está claro para mim se o uso das palavras "deve incluir" realmente significa "deve incluir apenas ". (O consenso nos comentários abaixo é que significa "deve incluir apenas").
Um aplicativo em um sistema Unix que não afirma ser um utilitário compatível com POSIX pode usar o nome que desejar. Se ele faz pretensão de ser um utilitário conformant POSIX que faz parte dos utilitários POSIX shell , o texto após as diretrizes na seção 12.2 diz que "deve" alterações que significa "deve".
Não há orientações semelhantes sobre nomes de diretório, tanto quanto eu sei. O macOS (que é um produto UNIX 03 certificado quando executado em um computador Mac com processador Intel) usa
/Users
como prefixo os diretórios pessoais do usuário, por exemplo, além de vários outros nomes de diretórios de casos mistos.fonte
should
seguinte maneira: "Para uma implementação em conformidade com a IEEE Std 1003.1-XXXX, descreve um recurso ou comportamento recomendado, mas não obrigatório. Um aplicativo não deve confiar na existência do recurso ou comportamento. Um aplicativo que se baseie em tal não é possível garantir que um recurso ou comportamento seja portátil nas implementações em conformidade. Para um aplicativo, descreve um recurso ou comportamento recomendado para a prática de programação para otimizar a portabilidade ".Não, nomes em minúsculas não são especificados para diretórios de instalação de pacotes de software.
De fato, historicamente, os pacotes de software instalados
/opt
começaram com o símbolo de todas as capitais da empresa que fornece o pacote, comoSUNW
para a Sun Microsystems ouORCL
Oracle.Portanto, pacotes como o sistema de arquivos QFS da Sun seriam instalados em um diretório chamado algo parecido
/opt/SUNWqfs
.fonte
should
a ser essencialmenteit is recommended
Ao lado das diretrizes do POSIX, acho que isso pode ter ainda mais peso na tradição do usuário. Os nomes de casos como "ApplicationName" se tornaram populares com a explosão do Wikis, acostumando algumas pessoas (como eu) a usar maiúsculas em vez de hífens ou, pior, espaços. Mas isso foi alguns anos depois que o Linux e sistemas operacionais similares se tornaram populares, com uma longa tradição Unix por trás.
Essa tradição sempre foi (é) a simplicidade, não apenas para seguir as regras apontadas por Kusalananda, abreviando apenas palavras de quatro a seis caracteres (por exemplo,
/usr
para "usuário",/srv
"servir" ou/mnt
"montado") e significados obviamente mais longos (/sbin
para "binários de superusuário". Nesta tradição, maiúscula, força você a pressionar a tecla Shift e, talvez acidentalmente também a tecla Caps Lock, é simplesmente ruim.De certa forma, isso é surpreendente, porque o Unixes, por muito tempo, conseguiu escrever nomes de arquivos longos com distinção entre maiúsculas e minúsculas, enquanto, por outro lado, o MS-DOS / Windows limitou-se a nomes de arquivos curtos sem distinção entre maiúsculas e minúsculas (oito caracteres mais três para a extensão), mas rapidamente perdeu essa simplicidade ("Arquivos de programas", "Meus documentos" etc.) quando o Windows 95 ultrapassa essa limitação.
No entanto, hoje existem algumas exceções como o
NetworkManager
daemon e provavelmente veremos mais WikiWords no futuro. Mas ainda odiamos o mouse e escrevemos nos nomes longos do terminal que você pode terminar apenas com o TabTabpreenchimento automático. Ou alguém veja alguma vantagem renomeandovim
paraVisualImproved
?fonte
/usr
não é uma abreviação para "user". É uma abreviação para "recursos do sistema Unix"/usr
originalmente era o diretório para conter os diretórios pessoais do usuário (como/home
hoje). Eu concordo com hobbs.My Computer
não é e nunca foi um diretório. É puramente uma construção de concha; você pode ilustrar isso considerando como, em um prompt de comando ou em um aplicativo Win16 antigo, navegaria até ele.Program Files
é uma bagunça própria, com seu nome localizado; Eu me deparei com esse problema mais recentemente, literalmente ontem , onde um software assumia o nome em inglês,Program Files
mas o nome real usado era localizado no sistema. Provavelmente um dos goofs piores da Microsoft no Windows 95./usr
eUnix System Resources
E, sim, nas primeiras versões do Unix, os usuários diretórios home também viveram sob `/ usr'