Como en el tema: me gustaría eliminar archivos en un directorio que se han modificado en un rango de fechas en particular. Cómo puedo hacer esto ?
fuente
Como en el tema: me gustaría eliminar archivos en un directorio que se han modificado en un rango de fechas en particular. Cómo puedo hacer esto ?
El comando GNU find
es el camino a seguir. Por ejemplo, para eliminar todos los archivos en el directorio actual entre el 1 y el 5 de agosto, puede usar el siguiente comando
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
Es mejor ejecutar el comando sin la -delete
acción, primero, para ver la lista de archivos interesados (un buen sustituto podría ser -ls
producir una lista similar a ls).
Eliminar la -maxdepth 1
especificación también atravesará todos los subdirectorios.
También puede especificar horas, por ejemplo
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
Tenga en cuenta que no elimine las comillas simples, que protegen los espacios entre la fecha y la hora.
El personaje !
es una negación, debe leerse: más reciente que esta fecha pero no más nuevo que esta otra fecha.
!
es un no. En este ejemplo: no es más reciente que 2011-08-06.-type f
.-type f
, lo olvido. El-delete
es una extensión de GNU, creo.