¿Cómo no elimino archivos solo en el directorio en el que estoy?

¿Cómo no elimino archivos solo en el directorio en el que estoy?

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 1descender como máximo 1 nivel de directorios
  • -mtime +30sólo los archivos modificados por última vez > 30 días
  • -type fsolo 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

información relacionada