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 .
!