Listar archivos por una fecha dada en un directorio concreto

Nombre: listaFecha
Autor:Alejandro Alcalde (algui91)
Lenguaje:Bash
Licencia:GPL
Propósito:Listar archivos por el dia, fecha o año que queramos.
Código:

#!/bin/bash

############################
#
#  Script que buscara archivos en un directorio dado, para una fecha dada
#  Autor: Alejandro Alcalde (algui91)

# Uso: listaFecha <directorio>
#
#
############################

function formateoFecha(){
        aux=$1
        case $2 in
                dia) if [ ${#aux} -eq 1 ] ; then dia=`echo 0$aux` ; fi ;;
                mes) if [ ${#aux} -eq 1 ] ; then mes=`echo 0$aux` ; fi ;;
        esac
}
######################################

function buscar(){
        case $3 in
                dia) ls -la $1 | grep -E \ ????-??-$2\
                        resul=$?
                        ;;
                mes) ls -la $1 | grep -E *-$2-*
                        resul=$?
                        ;;
                        year) ls -la $1 | grep -E $2-*-* ; echo $?
                        resul=$?
                        ;;
        esac
        if [ $resul -eq 1 ] ; then echo "No hay archivos para esta fecha" ; fi
        echo "Pulse enter" ; read -s
}

##########
## MAIN ##
##########
while [ true ] ; do
        clear
        if [ -d $1 ] && [ $# -eq 1 ] ; then
                echo "Desea buscar por:"
                echo "1-. Año."
                echo "2-. Mes."
                echo "3-. Día."
                echo "4-. Salir"
                echo -n "Opcion[1/2/3/4]: " ; read opc

                case $opc in
                        1)
                                echo -n "Introduzca el año: " ; read year
                                if ! [ ${#year} -eq 4 ] ; then
                                        echo -n "Introduzca 4 cifras para el año: " ; read year
                                fi
                                buscar $1 $year "year"
                                ;;
                        2)
                                echo -n "Introduzca el mes: " ; read mes
                                formateoFecha $mes "mes"
                                buscar $1 $mes "mes"
                                ;;
                        3)
                                echo -n "Introduzca el día: " ; read dia
                                formateoFecha $dia "dia"
                                buscar $1 $dia  "dia"
                                ;;
                                4) exit ;;
                esac
        fi
done

Ejemplos de uso:

listaFecha <directorio>
Desea buscar por:
1-. Año.
2-. Mes.
3-. Día.
4-. Salir
Opcion[1/2/3/4]:

Comentarios: Este script lo hice mas que nada para ensayar con expresiones regulares, si creen que es una tonteria me lo dicen y lo quito Para listar archivos del usuario root ejecuten con sudo.
NOTA: me gustaria poder controlar que solo se introduzcan numeros en el script(ya que son fechas), pero por mas que lo intente no conseguí averiguar como hacerlo, se que se puede, pero no hallé el modo.