printf '%s\n' *
como um comando shell listará os arquivos não ocultos no diretório atual, um por linha. Se não houver nenhum arquivo não oculto, ele exibirá * sozinho, exceto nos shells em que o problema foi corrigido (csh, tcsh, fish, zsh, bash -O failglob).
echo *
Listará os arquivos não ocultos separados por caracteres de espaço, exceto (dependendo da implementação do shell / echo) quando o primeiro nome de arquivo começar com - ou os nomes de arquivos contiverem caracteres de barra invertida.
É importante notar que é o shell que expande * na lista de arquivos antes de passá-lo para o comando. Você pode usar qualquer comando aqui como head -- * para exibir as primeiras linhas (com as head implementações que aceitam vários arquivos), stat -- * ...
Eu quero incluir arquivos ocultos:
printf '%s\n' .* *
(dependendo do shell, isso também incluirá . e .. ). Com zsh :
printf '%s\n' *(D)
Entre os outros aplicativos (além dos shell globs e ls ) que podem listar o conteúdo de um diretório, também há find :
find . ! -name . -prune
(inclui arquivos ocultos, exceto . e .. ).
No Linux, lsattr (lista os atributos do arquivo estendido do Linux):
lsattr
lsattr -a # to include hidden files like with ls