Como remover arquivos modificados entre datas específicas?

9

Como no tópico: Gostaria de remover arquivos em um diretório que tenha sido modificado em um período específico. Como posso fazer isso ?

    
por Patryk 14.08.2011 / 11:20

1 resposta

15

O comando GNU find é o caminho a percorrer. Por exemplo, para excluir todos os arquivos no diretório atual entre 1 e 5 de agosto, você pode usar o seguinte comando

find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete

É melhor executar o comando sem a ação -delete , primeiro, para ver a listagem de arquivos interessados (um bom substituto pode ser -ls que produz uma listagem semelhante a ls).

A remoção da especificação -maxdepth 1 também irá percorrer todos os subdiretórios.

Você também pode especificar horas, por exemplo

find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
                         ! -newermt '2011-08-06 23:01:00' -delete

Esteja avisado para não remover aspas simples, que protegem os espaços entre a data e a hora.

O caractere ! é uma negação, deve ser lido: mais recente que esta data mas não mais recente que essa outra data.

    
por enzotib 14.08.2011 / 11:38