Até onde eu sei, o comando dir
desce para subdiretórios ( /S
), pulando cabeçalhos e resumos ( /B
) e omitindo arquivos cuja d irectoria a ttribute está definido ( /A:-D
)
A maneira portátil de fazer isso no Linux seria através do comando find
- ele desce em subdiretórios por padrão, e pode-se omitir diretórios adicionando -not -type d
( !
pode ser usado como sinônimo de -not
)
Por padrão, ele relata caminhos relativos ao ponto de partida, portanto, para obter caminhos absolutos, você pode usar a variável de diretório de trabalho atual do shell PWD
:
find "$PWD" -not -type d
Se você estiver usando um shell que suporta correspondências de padrões recursivos (também conhecidos como "globstar") e qualifiers glob, existem outras opções - em zsh
, por exemplo, você poderia fazer
ls -1d **/*(^D:A)
ou simplesmente
printf '%s\n' **/*(^D:A)
Você também pode querer considerar se realmente deseja "não diretórios" ou "arquivos simples":
find "$PWD" -type f
ou (zsh)
printf '%s\n' **/*(.:A)