Existe um curinga bash para alterar diretórios?

Existe um curinga bash para alterar diretórios?

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 nocaseglobaos 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 onao 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, bashusará o primeiro e ignorará o resto. O que exatamente não está funcionando para você?

informação relacionada