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 nullglob
comando 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 echo
instrução:
$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995