'find' nos diretórios nomeados… / dirnameXX /… com a variável XX

3

Estou executando este comando para encontrar determinados arquivos em um diretório específico:

find ./rgs/test/maesXX/master/stdlist -name \*.extract \
     -mtime +30 \! -size 0 -exec ls -lrt {} \;

em que XX pode ser qualquer número entre 1-100.

Posso usar um regex para essa finalidade? Como eu faria isso? Existem outras maneiras?

    
por munish 11.01.2012 / 07:22

1 resposta

8

Você pode passar mais de um caminho para find , então a melhor maneira (IMHO) é deixar o shell fazer a expansão.

Se você não tiver outros diretórios começando com maes , então isso deve ser suficiente e é mais simples:

find ./rgs/test/maes*/master/stdlist ...

Mas se você realmente precisa combinar exatamente com esse padrão, você pode fazer

find ./rgs/test/maes[0-9][0-9]/master/stdlist ...

para maes00 - maes99 ou

find ./rgs/test/maes{[1-9],[1-9][0-9],100}/master/stdlist ...

para maes1 - maes100 (não entendi qual deles era o seu caso).

    
por 11.01.2012 / 07:55