#!/bin/bash
IN='/path/to/source/dir' # папка с исходными файлами
OUT='/path/to/dest/dir' # папка назначения
C=1
find "$IN" -iname '*.txt' | while read F; do
mv -iv "$F" "$OUT/$(printf '%04d' $C).txt"
C=$((C+1))
done
Не тестил особо, потренируйтесь "на кошках".