vbs una temporales script por para fecha extension eliminar confirmacion con carpetas carpeta borrar bat automaticamente archivos bash

bash - temporales - script para borrar archivos de una carpeta linux



Cómo eliminar archivos anteriores a X horas (8)

Estoy escribiendo un script bash que necesita borrar archivos viejos.

Actualmente se implementa utilizando:

find $LOCATION -name $REQUIRED_FILES -type f -mtime +1 -delete

Esto eliminará los archivos anteriores a 1 día.

Sin embargo, ¿qué sucede si necesito una resolución más fina que 1 día, digamos que 6 horas? ¿Hay alguna manera limpia de hacerlo, como usar find y -mtime?


¿Tu find tiene la opción -mmin ? Eso puede permitirle probar la cantidad de minutos desde la última modificación:

find $LOCATION -name $REQUIRED_FILES -type f -mmin +360 -delete

O tal vez mirar usando tmpwatch para hacer el mismo trabajo. phjr también recomendó tmpreaper en los comentarios.


-minutos es por minutos.

Intenta mirar la página de manual.

man find

para más tipos.


Este es el enfoque que funcionó para mí (y no creo que se use antes)

$ find /path/to/the/folder -name *.* -mmin +59 -delete > /dev/null

borrando todos los archivos de más de 59 minutos dejando las carpetas intactas.


Esto es lo que se puede hacer para seguir el camino que se le ocurrió a @iconoclast en su comment sobre otra respuesta.

use crontab para el usuario o un /etc/crontab para crear el archivo /tmp/hour :

# m h dom mon dow user command 0 * * * * root /usr/bin/touch /tmp/hour > /dev/null 2>&1

y luego usa esto para ejecutar tu comando:

find /tmp/ -daystart -maxdepth 1 -not -newer /tmp/hour -type f -name "for_one_hour_files*" -exec do_something {} /;


Para SunOS 5.10

Example 6 Selecting a File Using 24-hour Mode The descriptions of -atime, -ctime, and -mtime use the ter- minology n ``24-hour periods''''. For example, a file accessed at 23:59 is selected by: example% find . -atime -1 -print at 00:01 the next day (less than 24 hours later, not more than one day ago). The midnight boundary between days has no effect on the 24-hour calculation.


Podrías recurrir a este truco: crear un archivo hace 1 hora y usar el argumento -newer file .

(O use touch -t para crear dicho archivo).


Si no tiene "-mmin" en su versión de "buscar", entonces "-mtime -0.041667" se acerca bastante a "dentro de la última hora", por lo que en su caso, use:

-mtime +(X * 0.041667)

Entonces, si X significa 6 horas, entonces:

find . -mtime +0.25 -ls

funciona porque 24 horas * 0.25 = 6 horas


find $PATH -name $log_prefix"*"$log_ext -mmin +$num_mins -exec rm -f {} /;