Pero en realidad, findtiene un atajo para esto: la -deleteopción:
find -type f -name '*.sql' -mtime +15 -delete
Tenga en cuenta las siguientes advertencias en man find:
Warnings: Don't forget that the find command line is evaluated
as an expression, so putting -delete first will make find try to
delete everything below the starting points you specified. When
testing a find command line that you later intend to use with
-delete, you should explicitly specify -depth in order to avoid
later surprises. Because -delete implies -depth, you cannot
usefully use -prune and -delete together.
PD Tenga en cuenta que canalizar directamente rmno es una opción, porque rmno espera nombres de archivo en la entrada estándar. Lo que estás haciendo actualmente es canalizarlos hacia atrás.
Gracias. Leí la página del manual y probé esa bandera. Estoy pasando una ruta completa pero volviendo "/ usr / www2 / bar / htdocs / foo / rsync / httpdocs / db_backups /: la ruta relativa potencialmente no es segura". ¿Alguna idea de por qué?
Gracias. No estoy seguro de haber seguido bien la publicación, pero cuando emulé su solución y puse -delete al final del comando, eliminó todos los archivos sql independientemente del tiempo de modificación ... pero no tenía la advertencia, así que supongo eso es progreso ...
jerrygarciuh
1
@jerrygarciuh Ay, espero que no se haya perdido nada valioso ... mandice: When testing a find command line that you later intend to use with -delete, you should explicitly specify -depth in order to avoid later surprises.No estoy seguro de cómo eso importaría dadas las otras opciones que usaste, pero ¿lo intentaste?
Lev Levitsky
No, no lo hice pero no se perdió nada. Estos archivos se sincronizan desde otro servidor donde también se almacenan.
man
dice:When testing a find command line that you later intend to use with -delete, you should explicitly specify -depth in order to avoid later surprises.
No estoy seguro de cómo eso importaría dadas las otras opciones que usaste, pero ¿lo intentaste?Seleccionará archivos de
/usr/www/bar/htdocs
más de 15 días y los eliminará.fuente
Otro método más simple es usar el
locate
comando. Luego, canalice el resultado axargs
.Por ejemplo,
fuente
Suponiendo que no está en el directorio que contiene los archivos de copia de seguridad * .sql:
La opción -v anterior es útil, ya que generará de manera detallada los archivos que se eliminarán a medida que se eliminen.
Me gusta enumerar los archivos que se eliminarán primero para estar seguro. P.ej:
fuente