* significa todos os arquivos e diretórios, incluindo arquivos em sub-diretórios.
/ significa no diretório raiz
ls */ traz arquivos em sub-diretórios no diretório atual (não inclui arquivos no diretório atual)
ls -d listam entradas de diretório em vez de conteúdo.
Meu diretório cheio de arquivos e subdiretórios. Por que no meu caso isso traz apenas ./ ?
Ao adicionar todos juntos, eu tenho ls */ -d . Traz todos os diretórios no diretório atual. Qual é a lógica dessa combinação? Se eu pegar partes separadas deste comando, ele não traz esse resultado.
/ não significa diretório raiz. É um separador de caminho. Se o caminho começa com / , então, é claro, você tem um caminho absoluto, que começa no nível raiz. Aqui, a barra vem depois de * . O asterisco contém todas as entradas do diretório atual, mas aqui, o padrão é */ : everything no diretório atual que termina em / ; os arquivos não terminam em / , mas terminar um caminho com uma barra significa que você especificou um diretório, portanto isso significa apenas diretórios. Compare com *.txt , o que significaria todas as entradas terminadas em .txt .