A página man
de find
diz isso sobre -ctime
:
-ctime n
File's status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.
e isto sobre -atime
:
-atime n
File was last accessed n*24 hours ago. 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.
Portanto, você deve esperar que -ctime 1
remova os arquivos que foram alterados há 1 dia ou mais com base no arredondamento e defina-o como -ctime +-1
para obter o efeito desejado.
Para evitar que o próprio /var/tmp
seja excluído, especifique -mindepth 1
e, enquanto estiver experimentando, primeiro imprima os diretórios em que find
vai funcionar:
find /var/tmp -mindepth 1 -type d -ctime +-1 -print
antes de fazer o destrutivo:
find /var/tmp -mindepth 1 -type d -ctime +-1 -exec rm -rf {} +
(Eu usaria +
em vez de \;
sem necessidade de invocar rm várias vezes. (Como alternativa, você poderia usar -delete
em vez de usar -exec rm....
, mas, nesse caso, find
precisaria remover os arquivos sob esses diretórios também, deixando os diretamente sob /var/tmp
)