Comportamento estranho case insensitivity with bash on MacOS

0
~/testing $ echo Hello > hello.txt
~/testing $ echo Goodbye > goodbye.txt
~/testing $ cat goodbye.txt hello.txt > HELLO.txt
^C
~/testing $ ls -l
total 9056
-rw-r--r--  1 user  user        8 25 Jul 16:21 goodbye.txt
-rw-r--r--  1 user  user  4631048 25 Jul 16:22 hello.txt
~/testing $ 

O que? Eu estou sentindo falta de algo aqui. Existe uma opção de destruir arquivos insensivelmente estou faltando? Por que isso parece fazer um loop?

    
por mgjk 25.07.2012 / 22:27

3 respostas

2

Por padrão, o Mac OS X usa um sistema de arquivos que não diferencia maiúsculas de minúsculas. Se você quiser mudar isso, você precisa reformatar seu disco com a opção que diferencia maiúsculas de minúsculas. Esteja avisado que alguns programas escritos pelos principais fornecedores < cough > Adobe < / cough & gt ;, < cough > Microsoft < / cough > apresentam problemas graves com sistemas de arquivos que diferenciam maiúsculas e minúsculas.

Enquanto o sistema de arquivos não faz distinção entre maiúsculas e minúsculas, todos os arquivos serão apresentados como seu caso natural. Ou seja, se você tem um arquivo chamado hello.txt e digite shift + H Tab (aba H maiúsculo) você não terá nenhuma conclusão candidatos (a menos que você defina o seu shell para fazer conclusão insensível).

    
por 25.07.2012 / 22:54
2
cat goodbye.txt hello.txt > HELLO.txt

A sequência de eventos:

  1. O shell trunca o hello.txt para zero bytes.
  2. cat grava o conteúdo de goodbye.txt em stdout que aponta para hello.txt.
  3. cat começa a ler a partir do hello.txt e escreve o que lê para stdout, que ainda está apontando para hello.txt. Como o cat está lendo e escrevendo o mesmo arquivo, ele nunca chegará ao final do arquivo e continuará adicionando ao hello.txt até que o sistema de arquivos esteja cheio.
por 25.07.2012 / 22:53
1

A opção padrão para formatar um disco no OSX é HFS + Journaled case-insensitive. Você terá que formatar explicitamente como diferencia maiúsculas de minúsculas se desejar esse comportamento.

O comportamento que você está vendo é intencional.

    
por 25.07.2012 / 22:52

Tags