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