Ao usar a linha de comando Bash, posso, por exemplo, mudar para um diretório usando...
cd /volumes
No entanto, eu gostaria de digitar ...
cd /vol*
mas isso não funciona. Existe uma maneira de navegar nos diretórios usando curingas?
Responder1
O Mac OS, por padrão, usa um sistema de arquivos que não diferencia maiúsculas de minúsculas. cd /volumes
é equivalente a cd /Volumes
, mas o bash não pode glob o vol*
: trycd /Vol*
Responder2
Como disse @William Pursell, isso se deve ao fato de a pasta ser chamada de /Volumes, não de /volumes; o sistema de arquivos OS X não diferencia maiúsculas de minúsculas, portanto ignora a diferença, mas o bash diferencia maiúsculas de minúsculas e tropeça na diferença.
Mas você pode alterar o comportamento padrão do bash: para fazer com que ele faça expansões de padrões de arquivo que não diferenciam maiúsculas de minúsculas, adicione o comando shopt -s nocaseglob
aos seus arquivos ~/.bashrc e ~/.bash_profile (é necessário em ambos, portanto a opção é definida em ambos os shells de login e subcamadas). Se você também deseja que a conclusão do nome do arquivo funcione apesar das incompatibilidades de maiúsculas e minúsculas, adicione set completion-ignore-case on
ao seu arquivo ~/.inputrc ou adicione bind "set completion-ignore-case on"
aos seus arquivos ~/.bashrc e ~/.bash_profile.
Responder3
Digitando:
cd /vol*
funcionabem. Mesmo que /vol*
se expanda para vários diretórios, bash
usará o primeiro e ignorará o resto. O que exatamente não está funcionando para você?