A diferença entre o comando ls e o comando ls * esta no * o comando ls puro ira listar apenas o conteúdo do diretório atual. a partir do momento que passamos algo além do ls o terminal interpreta como parâmetro de busca. quando passamos o * como parâmetro estamos indicando que o parâmetro de busca é tudo e por isso o ls faz um listagem não apenas do diretório atual como de seus diretórios filhos e assim a diante. Quando juntamos o * alguma palavra como parâmetro (ex: *texto) significa que estamos fazendo uma busca não apenas pela palavra em si mas qualquer registro que contenha ela.