Linux comando / script para encontrar todos os arquivos em um diretório com um número de 4 dígitos = um número específico

2

Eu tenho uma pasta contendo várias outras pastas, cada uma com esse formato:

Company XYZ (1999 OneWordDescription)

Estou tentando filtrar os que estão marcados como 1995 ou mais, para que eu possa movê-los para outra pasta e excluí-los manualmente. A data modificada / criada não ajudará, pois todas elas foram modificadas desde então, e as datas criadas não são precisas por algum motivo.

Qual comando Linux ou script eu poderia executar para mover tudo com "(1995) e mais antigo para um diretório diferente?

    
por Big Millz 20.05.2015 / 01:10

1 resposta

1

Para mover todas as pastas por anos de 1980 a 1995, inclusive, execute:

shopt -s nullglob
mv *'('{1980..1995}*/ /some/path/

O comando shopt -s nullglob não é estritamente necessário, mas elimina as mensagens de erro se algum dos anos estiver faltando.

O exemplo acima usa expansões de chaves, {1980..1995} para gerar todos os anos explicitamente. Você pode ver como a expansão de chaves funciona usando apenas uma instrução echo :

$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995
    
por 20.05.2015 / 01:36