Ele não funciona porque */
e .*/
não são argumentos que são passados diretamente para ls
- em vez disso, eles são globs que são expandidos pelo shell, fornecendo uma lista de nomes de arquivos correspondentes no diretório atual que são passados para ls
O equivalente para um diretório diferente ( /etc
say) seria
ls -d /etc/*/ /etc/.*/
Se o seu shell suporta a expansão de contraventamento, você pode escrever isso de forma mais compacta como
ls -d /etc/{,.}*/