Use a opção -R (equivalente a --recursive
) para grep.
EDIT: depois de ler o tópico, na combinação ls /mydata | grep txt$
você não precisa de grep recursivo, mas ls recursivo . Você não grep os arquivos; você usa a saída de ls, que é uma lista de arquivos.
"ls recursivo" é chamado de localizar: -)
find /mydata -type f | grep txt$
ou melhor,
find /mydata -type f -name '*.txt'