...perché usi il comando ls? ...prova con il comando find, ad esempio, in linea di principio (non l'ho provato! ...quindi utilizza copie di file e non gli originali!):
find /percorso/di/ricerca -name *.txt -exec cp \{\} /percorso/di/copia \;
usa -iname se vuoi una ricerca non case sensitive. Se funziona come desideri vediamo di comprimere anche ladestinazione.

Bye
