Podrías comenzar diciendo find /var/dtpdev/tmp/ -type f -mtime +15
. Esto encontrará todos los archivos de más de 15 días e imprimirá sus nombres. Opcionalmente, puede especificar -print
al final del comando, pero esa es la acción predeterminada. Es recomendable ejecutar primero el comando anterior para ver qué archivos están seleccionados.
Después de verificar que el find
comando enumera los archivos que desea eliminar (y no otros), puede agregar una "acción" para eliminar los archivos. Las acciones típicas para hacer esto son:
-exec rm -f {} \;
(o, equivalentemente -exec rm -f {} ';'
)
Esto se ejecutará rm -f
en cada archivo; p.ej,
rm -f /var/dtpdev/tmp/A1/B1; rm -f /var/dtpdev/tmp/A1/B2; rm -f /var/dtpdev/tmp/A1/B3; …
-exec rm -f {} +
Esto se ejecutará rm -f
en muchos archivos a la vez; p.ej,
rm -f /var/dtpdev/tmp/A1/B1 /var/dtpdev/tmp/A1/B2 /var/dtpdev/tmp/A1/B3 …
por lo tanto, puede ser un poco más rápido que la opción 1. (Es posible que deba ejecutarse rm -f
varias veces si tiene miles de archivos).
-delete
Esto se dice a find
sí mismo para eliminar los archivos, sin ejecutar rm
. Esto puede ser infinitesimalmente más rápido que las -exec
variantes, pero no funcionará en todos los sistemas.
Entonces, si usa la opción 2, todo el comando sería:
find /var/dtpdev/tmp/ -type f -mtime +15 -exec rm -f {} +