Escolar Documentos
Profissional Documentos
Cultura Documentos
Acidentalmente acabei esbarrando neste curioso comportamento no MacOS X¹. Você também
acreditava que fazer distinção entre maiúsculas e minúsculas, a tal da case sensitivity
(https://en.wikipedia.org/wiki/Case_sensitivity), fosse da natureza dos UNIX e seus derivados? Por
este motivo resolvi pesquisar a respeito.
(¹) Ao menos na versão 10.6, o Snow Leopard, mas não deve ser diferente em outras versões.
É ou não é UNIX?
Aliás a primeira coisa que me veio em mente foi uma propaganda de 2002 da Apple argumentando
que seu “novo” sistema operacional era um “bom” UNIX.
E também me lembrei de pessoas comentando os motivos dele não ser assim tão “bom” e, claro, nem
ser UNIX.
Que acontece?
Versão curta : Tem relação com o sistema de arquivos, o HFS Plus (https://en.wikipedia.org
/wiki/HFS_Plus), que não distingue entre maiúsculas e minúsculas no nomes dos arquivos e
diretórios, não há nada de errado com o interpretador de comandos (Bash, C Shell, etc) e você pode
parar a leitura agora.
Versão longa : Acontece que o HFS Plus conserva por padrão um velho hábito do HFS (e antes ainda
do ProDOS) de preservar a caixa no nome de arquivos e diretórios mas não fazer distinção nas
operações. Algo lá da época do Apple II/Apple IIGS e dos Macintosh “Branca de Neve”:
Comandos e parâmetros
Claro que a “insensibilidade” só se aplica aos nomes dos arquivos e aos diretórios, os parâmetros
passados nos comandos continuam case-sensitive:
Até aí nada estranho, diversos comandos tem parâmetros diferentes para a letra em minúscula e em
maiúscula.
Claro que não são todos os comandos que funcionarão corretamente independente do modo como
estiverem grafados, alguns casos pode apresentar um comportamento errático:
No caso específico do whoami ele é equivalente a usar “id -un” e o programa sabe que se for
executado com este nome ele deverá se comportar desta forma ajustando corretamente os seus
parâmetros — mas acontece que ele só verifica se argv[0] é igual a “whoami” mas não “WHOAMI”.
Curingas
Dentro da shell, quando você procurar por um arquivo individualmente a caixa dos caracteres será
ignorada. Mas quando se usa curingas o retorno será case-sensitive.– no exemplo vou me restringir ao
∗, pois é mais que suficiente.
(https://giovannireisnunes.files.wordpress.com/2016/03/osx_curingas1.png)
E não é forçação de barra! Minha câmera fotográfica salva as imagens em formato JPEG grafando a
extensão do arquivos somente em maiúsculas enquanto que meu celular o faz usando apenas letras
minúsculas.
Há salvação?
É possível configurar uma partição HFS Plus para ser case-sensitive, ou não, no momento da sua
criação. Tanto no MacOS X, usando o Disk Utility (que trabalha tanto com partições como com
imagens de disco):
Como em Linux, através das ferramentas do pacote hfsplus:
$ mkfs.hfsplus -h
usage: mkfs.hfsplus [-h | -w] [-N] [hfsplus-options] special-device
options:
-h create an HFS format filesystem (HFS Plus is the default)
-N do not create file system, just print out parameters
-s use case-sensitive filenames (default is case-insensitive)
-w add a HFS wrapper (i.e. Native Mac OS 9 bootable)
...
Porém, pelo que entendi não parece ser uma boa ideia (https://discussions.apple.com/message
/21906523#21906523) usar partições HFS Plus com o case-sensitive ligado. Pois as “coisas” (Sistema
Operacional, Aplicativos etc) poderão não funcionar corretamente.
É ou não é?
Resolvi então testar usando imagem de disco formatada com o case-sensitive ligado.
Só para confirmar que o MacOS X pode não estar mas que ele é case-sensitive sim.
(https://giovannireisnunes.files.wordpress.com/2016/02/osx_copy_fail.png)
Sistemas Operacionais
APPLE IIGS , HFS , MAC OS X , UNIX
UM SITE WORDPRESS.COM.