Comando/script do Linux para localizar todos os arquivos em um diretório com um número de 4 dígitos

Comando/script do Linux para localizar todos os arquivos em um diretório com um número de 4 dígitos

Eu tenho uma pasta contendo várias outras pastas, cada uma nomeada neste formato:

Company XYZ (1999 OneWordDescription)

Estou tentando filtrar aqueles marcados como 1995 ou mais antigos, para poder movê-los para outra pasta e excluí-los manualmente. A data de modificação/criação não ajudará, pois todas foram modificadas desde então e as datas de criação simplesmente não são precisas por algum motivo.

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

Responder1

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

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

O shopt -s nullglobcomando não é estritamente necessário, mas elimina mensagens de erro se faltar algum dos anos.

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

$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995

informação relacionada