Isso ocorre porque, no OS X, /etc
é um link simbólico:
$ l /etc
lrwxr-xr-x 1 root 11 2012-09-22 09:02 /etc -> private/etc/
ou seja, /etc
é um arquivo, não um diretório.
Se você tentar um diretório real, como /usr
, verá o comportamento esperado:
cd /us
TAB
cd /usr/
Você pode forçar o Bash a tratar os diretórios com links simbólicos como diretórios com este comando:
bind 'set mark-symlinked-directories on'
Adicione-o ao seu .bashrc
e forneça-o (isto é, leia e execute comandos a partir dele) assim:
. ~/.bashrc
ou reabra o Terminal.