Uma versão:
find /log -type f -iregex '.*/'log.20120308'[.0-9]*' -print
Claro, isso também selecionaria um arquivo chamado /log/log.20120308..
, mas não imagino que seja um problema provável.
Outra maneira seria usar -o
como um operador "ou", com parênteses escapados em torno dos operandos:
find /log -type f \( -iregex '.*/'log.20120308'.[0-9]*' -o -iregex '.*/'log.20120308 \) -print
Ah, mais uma atualização para o uso de -iregex
: você pode simplesmente citar um pouco, já que '.*/log.20120308.[0-9]*'
selecionaria o mesmo que '.*/'log.20120308'.[0-9]*'
. Juntando isso com a sugestão de @ md-gao, você pode obter esta versão:
find /log -type f -iregex '.*/log.20120308\(\.[0-9]\)?' -print