AIX Unix - Como encontrar e remover arquivos criados entre o período de data, com os caracteres inicial e final?

1

Estou usando o IBM AIX Unix e ele é limitado com a opção de comando. Eu quero implementar critérios de filtro abaixo usando a opção find e mtime (que funciona). Gostaria de remover os arquivos listados com a condição de filtro abaixo.

  • arquivos começando com o número [0-9]
  • terminando com ".dat"
  • e a duração é entre 1º de agosto de 2018 e 15 de outubro de 2018

Eu estava tentando encontrar o comando, mas não ajudou muito.

 find /mydirectory -type f -mtime -45 -mtime +5 
    
por mr_eclair 22.10.2018 / 08:23

2 respostas

2

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 .

    
por 22.10.2018 / 10:03
1

Se as datas forem fixas, o que significa que você deseja excluir arquivos com datas de modificação dentro desse intervalo, independentemente de quando executar o comando, você poderá usar touch command para criar arquivos de referência e find -newer para limitar os resultados:

touch -t 201807312359.59 /tmp/oldest-file
touch -t 201810152359.59 /tmp/newest-file
find /mydirectory -type f -newer /tmp/oldest-file ! -newer /tmp/newest-file -name '[0-9]*.dat' -exec rm {} \;
    
por 22.10.2018 / 13:51