Como no tópico: eu gostaria de remover arquivos em um diretório que foram modificados em um período específico. Como posso fazer isso ?
fonte
Como no tópico: eu gostaria de remover arquivos em um diretório que foram modificados em um período específico. Como posso fazer isso ?
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 -delete
ação, primeiro, para ver a lista de arquivos interessados (pode ser um bom substituto -ls
que produza uma lista do tipo ls).
A remoção da -maxdepth 1
especificação também atravessará 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 data e hora.
O personagem !
é uma negação, deve-se ler: mais recente que nesta data, mas não mais nova que nesta outra data.
!
não é. Neste exemplo: Não é mais recente que 06/08/2011.-type f
.-type f
, eu esqueço isso. O-delete
é um extensões GNU, eu acho.