q1) Doing a ls -ld show me a . - why ?
Quando você não fornece argumentos para ls , o padrão é executar o comando no diretório atual, também conhecido como . . Normalmente, isso significa listar o conteúdo do diretório, mas você usou a opção -d que solicita listar o diretório em si , não seu conteúdo. Então você obtém as informações de . , o diretório atual.
doing a ls -ld *, give me everything including the files in the folder
Não, isso não acontece. ls -ld * listará cada arquivo no diretório atual correspondente a * (que é todos eles excetam os ocultos), mas não o conteúdo daqueles que são diretórios, mais uma vez porque você usou -d . Observe que o resultado de seu exemplo faz algo diferente porque não usa -d .
doing a ls -ld */ and it shows me the right result, only folders.
Apenas os diretórios correspondem ao padrão */ , porque os arquivos comuns não podem ter nomes de caminho que terminem em / .
q3) what does "ls" actually take in as a parameter ? * here means everything including folder. and */ means folder only, and -d here remove folder content.
Tudo basicamente correto. Para expandir: * corresponde a tudo, exceto arquivos ocultos, */ é o mesmo, mas apenas corresponde a diretórios, e você tem o significado da opção -d .
if that's the case, why doesn't ls -ld show any result at all. only a . at q1
Ele mostra um resultado: mostra o diretório atual, que é conhecido como . !