Quiero eliminar archivos de más de 30 días en un directorio, pero no en directorios inferiores al que estoy.
Respuesta1
Para enumerar los archivos antes de eliminarlos:
find . -maxdepth 1 -mtime +30 -type f -ls
Para eliminar los archivos:
find . -maxdepth 1 -mtime +30 -type f -exec rm {} +
con
.
especificando el directorio actual-maxdepth 1
descender como máximo 1 nivel de directorios-mtime +30
sólo los archivos modificados por última vez > 30 días-type f
solo archivos regulares
Respuesta2
El shell zsh tienecaracterísticas especiales de expansión con comodinesEso podría ayudar.
enumerar archivos de más de 30 días en el directorio actual:
ls -d -- *(.m+30)
eliminar archivos de más de 30 días en el directorio actual:
rm -- *(.m+30)
La sintaxis zsh de *(.m+30)
es un comodín que significa:
*
-- cualquier nombre de archivo( ... )
-- con una calificación de....
-- un archivo normal (no un directorio, etc.)m+30
-- el tiempo de modificación es mayor que hace 30 días