Minúsculas nos nomes de arquivos do Linux


11

Como eu acho que o UpperCase é realmente legível para a separação de palavras da primeira letra em nomes longos e complexos, costumo atribuir alguns dos meus arquivos de Linux com alguns UpperCase. Principalmente executáveis, alguns diretórios também.

Mas já faz algumas semanas que observei que a grande maioria de todos os nomes de arquivos em minha distribuição Linux é minúscula ...

Então, pesquisei no Google um momento atrás e encontrei este artigo: Linux File Names , que afirma que sempre se deve usar letras minúsculas no mundo unix,

... É melhor sempre usar letras minúsculas no Linux, a menos que você considere um bom motivo para usar letras maiúsculas ou mistas. A maioria das pessoas do Unix usa letras minúsculas quase que exclusivamente, mas além desse ponto "cultural", há outro bom motivo para usar letras minúsculas. Se você estiver compartilhando ou acessando um sistema de arquivos DOS com Linux, o DOS não poderá ver os arquivos com nomes de arquivos em maiúsculas ou minúsculas ...

Esse é realmente o caso?


2
Sim, esse é realmente o caso. Parece que as pessoas unix não conseguem encontrar a tecla Shift. mas não há realmente nada justificável para apoiar regras contra casos mistos. é apenas um discurso retórico.
Ross Patterson

Respostas:


20

Os programadores detestam o uso da tecla Shift (e caps lock é algo que muitos tentam eliminar ). Continuando a partir do ponto que diz "sempre use letras minúsculas" ...

É melhor sempre usar letras minúsculas no Linux, a menos que você consiga um bom motivo para usar letras maiúsculas ou mistas. A maioria das pessoas do Unix usa letras minúsculas quase que exclusivamente, mas além desse ponto "cultural" , há outro bom motivo para usar letras minúsculas. Se você estiver compartilhando ou acessando um sistema de arquivos DOS com Linux, o DOS não poderá ver os arquivos com nomes de arquivo em maiúsculas ou minúsculas.

A principal razão para isso é que, se você estiver transferindo dois arquivos separados apenas por maiúsculas e minúsculas para um sistema que não diferencia maiúsculas de minúsculas, coisas confusas podem acontecer na máquina que não diferencia maiúsculas de minúsculas.

Os arquivos na sua máquina Linux são seus. Faça com eles o que quiser de uma maneira que faça sentido para você.

Eu descobri que a convenção de usar letras maiúsculas para a letra líder de um diretório torna mais fácil para mim para navegar eles. Fazer um 'ls' no diretório coloca automaticamente todos os diretórios no topo da lista e separa os diretórios dos arquivos, facilitando a visualização e a navegação. Mas, novamente, isso é para mim - faça o que funciona para você .


1
DOS? Verdade? Isso não é mais relevante.
Maximus Minimus

3
@ mh01 Eu considerava o EBCDIC irrelevante até o ano passado, tive que lidar com um sistema que enviava esse conjunto de caracteres em vez de ascii. Eu já vi sistemas OpenVMS por aí (a versão mais recente foi de apenas 2 anos atrás, nada ruim para algo que teve uma primeira versão há 35 anos) ... e seu sistema de arquivos ainda não diferencia maiúsculas de minúsculas. Aparentemente, os Macs diferenciam maiúsculas e minúsculas de maiúsculas e minúsculas (e o steam e o photoshop não gostam de sistemas de arquivos com maiúsculas e minúsculas no mac ). A distinção entre maiúsculas e minúsculas está viva.

3
Sem mencionar a grande maioria das máquinas desktop executando sistemas de arquivos Windows que não diferenciam maiúsculas de minúsculas.
22713 Kilian Foth

Bom argumento sobre distinção entre maiúsculas e minúsculas versus preservação de maiúsculas e minúsculas, mas se você tiver arquivos diferentes que diferem apenas na caixa do nome do arquivo, acho que existem outros problemas além da transferência para sistemas de arquivos que não diferenciam maiúsculas de minúsculas que podem causar confusão. ..
um CVn

9

Os usos "orientados ao consumidor" (o que quer que isso signifique) tendem a usar o Title Case, mesmo no mundo Unix. Esse é o caso mais frequente quando a organização em questão possui pessoas cujo trabalho é pensar na experiência do usuário.

Por exemplo, o meu desktop Ubuntu tem pastas no diretório home chamado Downloads, Pictures, Documents, etc. O mesmo vale para o meu laptop OSX (sim, ele conta, é BSD). Embora valha a pena ressaltar que a Apple chega a nomear seus próprios diretórios de sistema com titlecase (por exemplo /Library/Audio/Apple Loops/), enquanto mantém o sistema de arquivos básico "clássico" em minúsculas (por exemplo /usr/libexec/dtrace/). Mas nenhuma distribuição Linux que eu conheço usa o titlecase em qualquer lugar fora do diretório inicial do usuário.

Presumivelmente, a distinção é que os diretórios que você espera que as pessoas realmente vejam são em titlecase, enquanto os lugares que você espera que as pessoas não explorem são todos em minúsculas. Uma distinção semelhante parece estar em jogo com o Ubuntu; apenas os diretórios que devem aparecer como uma lista de pastas em uma janela do Nautilus são titlecase, enquanto os nomes de pastas que devem ser digitados (não navegados) são todos inferiores.

E esse é o ponto crucial disso; titlecase ou maiúscula é mais difícil de digitar. Mas o titlecase fica melhor em uma lista ou conjunto de pastas lado a lado. Então, escolha de acordo. O pessoal do Linux frequentemente lida na linha de comando, mesmo para tarefas mundanas, portanto, minúsculas faz mais sentido.


bom ponto, mas gostaria de acrescentar que espaços ou sublinhados são mais fáceis de ler do que camel ou Pascal case
jk.

4

Sobre o argumento DOS: sistemas de arquivos DOS / Windows não ver seus arquivos independentemente do caso, e eles podem tratá-los bem. Os sistemas de arquivos DOS muito antigos não suportam nada além dos nomes de arquivos 8.3, mas mesmo o FAT32 pode lidar com nomes de arquivos longos. O único problema é que, enquanto os sistemas de arquivos DOS / Windows preservam maiúsculas e minúsculas (na maioria dos casos; alguns tipos descartam maiúsculas e minúsculas para nomes de arquivos que se encaixam no formato 8.3), eles não diferenciam maiúsculas de minúsculas quando se trata de comparar nomes de arquivos; O Windows considera "foobar", "Foobar", "FOOBAR" e "fOObAr" como o mesmo nome de arquivo.

Dito isto, é principalmente uma coisa de cultura, mas há alguns antecedentes nisso. A razão pela qual essa convenção específica ficou no mundo UNIX é a usabilidade . Existem dois argumentos principais aqui:

  • Separar palavras usando caracteres que não sejam da letra é melhor para o conforto de leitura do que usar letras maiúsculas para marcar os limites das palavras. IfYouDonTBelieveMe, CompareThisSentenceWithTheAnteriorOneAndTellMeWhichIsEasierToRead. (E, é claro, a separação novisual é sempre menor).
  • As letras minúsculas têm formas mais variadas que as maiúsculas, o que, por sua vez, leva a formas de palavras mais diversas. ISSO FAZ O TEXTO ESCRITO EM BAIXA FASE MAIS FÁCIL DE LER DO QUE O TEXTO ESCRITO EM MAIÚSCULAS.

É fácil verificar essas observações e até foram confirmadas por pesquisas científicas.

Além disso, a cultura UNIX prefere convenções que não são apenas fáceis de ler, mas também fáceis de escrever; Os hackers do UNIX geralmente são pessoas que passam muito tempo usando o teclado e muitos usam o sistema oficial de digitação por toque ou algum derivado pessoal aprimorado para a programação. O conceito de permanecer na linha inicial é importante de qualquer maneira, para que as pessoas evitem usar teclas que não podem ser alcançadas a partir da linha inicial, especialmente as teclas Shift.

Se você combinar essas três restrições, existe apenas uma convenção sensata, que é all-lowercase-with-dashes.


3
@ StephanieRolland: buscar nomes consistentes em coisas diferentes como identificador em diferentes linguagens de programação e nomes de arquivos não é aconselhável. Seja consistente em cada domínio e siga as convenções estabelecidas, mas não tente encontrar uma para governar todas elas. As variáveis ​​Java não são nomes de tabela SQL e também não são nomes de arquivos.
tdammers

@StephaneRolland - Eu acredito que a palavra que você quer é snake_case .
Cchamberlain 8/15
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.