Em vez de analisar ls
, você pode usar find
:
find . -maxdepth 1 -type f ! -name ".*" | wc -l
Isso localizará todos os arquivos ( -type f
) no diretório atual ( .
), exceto aqueles que começam com a. ( ! -name ".*"
) e passa o resultado para wc
para contar as linhas.
Para usá-lo como uma variável no seu script:
nfiles=$(find . -maxdepth 1 -type f ! -name ".*" | wc -l)