Por que ls -a não mostra arquivos que o localizador mostra?

Aug 17 2020

Ao navegar para /usr/local/binum arquivo chamado "R" pode ser visto:

Mas quando cd /usr/local/bine ls(ou ls -a), vemos uma longa lista de arquivos, mas nenhum arquivo chamado R:

Fiquei surpreso com isso - aparentemente o localizador pode ver arquivos que lsnão podem. Por que não ls -amostra todos os arquivos que o localizador mostra?

Respostas

20 Allan Aug 17 2020 at 07:55

Ele está lá, mas você não o está vendo porque não está onde você esperava porque a classificação no Finder é diferente da classificação no Bash/Zsh. Basicamente, o Finder faz uma pesquisa que não diferencia maiúsculas de minúsculas, enquanto o Bash diferencia maiúsculas de minúsculas. Por exemplo, "a" segue "Z"

Se você está procurando um arquivo específico e conhece o caso, pode usar um pouco lsde mágica para encontrá-lo...

$ ls -Ad R*

Onde...

  • -A= Lista todos os arquivos, exceto .e..
  • -d= Trate os diretórios como arquivos e não os procure recursivamente
  • R*= Todos os arquivos que começam com a letra "R"