Usando find
:
find ~/tmp -type f -mtime +0 -delete
-
~/tmp
é o diretório a ser pesquisado recursivamente, altere isso de acordo -
-type f
procurará apenas arquivos -
-mtime +0
, que corresponderá a um arquivo se ele foi modificado pela última vez há um dia ou mais -
-delete
apenas removerá o (s) arquivo (s) correspondente (s)
Aqui, a captura é -mtime +0
, a maioria pode pensar em usar -mtime +1
, mas find
ignorará qualquer tempo fracionário durante o cálculo de dias. Portanto, -mtime +1
corresponderá a um arquivo se a última modificação tiver sido feita há pelo menos dois dias.
Citar man find
, -mtime
tem a mesma convenção de tempo que -atime
:
-atime n
O arquivo foi acessado pela última vez n * 24 horas atrás. Quando descobrir descobre como muitos períodos de 24 horas atrás, o arquivo foi acessado pela última vez, A parte fracionária é ignorada, então, para corresponder a -atime +1, um arquivo deve ter sido acessado há pelo menos dois dias.
Observe também que, se você deseja precisão, deve olhar a opção -mmin
de find
para indicar o tempo em minutos.
Para executá-lo periodicamente após 3 horas, você pode adicionar uma entrada cron
.
Execute crontab -e
e adicione:
00 */3 * * * /usr/bin/find ~/tmp -type f -mtime +0 -delete
Usando zsh
para remover os arquivos:
rm ~/tmp/**/*(.-m+0)
Adicionando a cron
:
00 */3 * * * /usr/bin/zsh -c 'rm ~/tmp/**/*(.-m+0)'