Excluir um arquivo após X dias não funciona [duplicado]

0

Eu tentei várias maneiras de escrever isso e estou executando o script sozinho, por isso não é o crontab que não está funcionando. Estes são exemplos do que eu tentei:

find /home/backups -mtime +1 -exec rm {} \;
find /home/backups/* -mtime +1 -exec rm {} \;
find /home/backups/ -mtime +1 -exec rm {} \;

Preciso que os arquivos sejam excluídos todos os dias, mas parece que não funciona. Executar ls -ld /home/backups retorna uma longa lista de arquivos - Estes são os dois primeiros arquivos

-rw-r--r-- 1 root root 8284346 Jan 12 13:00 arksave-2016-01-12--01-00-01.tar.gz
-rw-r--r-- 1 root root 8295428 Jan 12 13:15 arksave-2016-01-12--01-15-01.tar.gz

Note que tem mais de um dia e estes são os dois últimos arquivos

-rw-r--r-- 1 root root 38016124 Jan 13 12:30 arksave-2016-01-13--12-30-01.tar.gz
-rw-r--r-- 1 root root 38016163 Jan 13 12:45 arksave-2016-01-13--12-45-01.tar.gz

    
por Batzz 13.01.2016 / 14:34

1 resposta

2

Citando 'TNW'

When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have been accessed at least two days ago.

Para encontrar um arquivo com apenas um dia, você pode usar qualquer um dos trechos abaixo

find /home/backups/* -mtime +0

ou

find . -mmin +$((60*24))

    
por 13.01.2016 / 14:55