Se o número de arquivos não for muito grande, você poderia usar globbing para definir os parâmetros posicionais para cada nome de arquivo correspondente e, em seguida, ecoar a contagem:
count=$(ssh [email protected]
'set -- /files/base/incomming/*.txt; echo "$#"')
Ou, se o número de arquivos for grande (mas menor que uintmax_t
), e você tem o GNU find (para a extensão -printf
), então você pode usar um truque que eu vi do Stéphane :
count=$(ssh [email protected]
'find /files/base/incomming -maxdepth 1 -type f -name '*.txt' -printf . | wc -c')
O comando acima executa o comando find
no diretório fornecido, limitando a profundidade apenas àquele diretório e também limitando as correspondências a arquivos simples ( -type f
) e também cujo nome termina com .txt
; para cada correspondência, um único período é impresso, o número total do qual é contado por wc -c
e retornado da substituição do comando para a atribuição a count
.