Esse comando find
procura itens que são arquivos E coisas modificadas pela última vez há menos de 45 dias E coisas modificadas pela última vez há mais de 5 dias . (O "AND" restringe o conjunto de dados, não o amplia. Leia-o como "that are also", se preferir).
Supondo que você correspondeu ao seu período absoluto, agora só precisa adicionar uma cláusula que complete o conjunto de critérios que você especificou:
find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*' -name '*.dat'
Otimizando um pouco, esses dois critérios de nomenclatura
- files starting with digit [0-9]
- ending with ".dat"
pode ser mesclado em uma única instrução:
- arquivos correspondentes ao glob ("padrão de caractere curinga")
[0-9]*.dat
Finalmente, você precisa de uma ação " remover os arquivos correspondentes ", que podemos implementar com rm -f
, e isso nos leva à sua solução necessária.
find /mydirectory -type f -mtime -45 -mtime +5 -name '[0-9]*.dat' -exec echo rm -f {} \;
Lembre-se de remover echo
desse comando quando vir a seleção de arquivos conforme o esperado, para que rm
seja acionado e não apenas impresso .