`find -delete` Erased Everything

Your answer is in find manpage.

The delete option is processed before your name filter.

       -delete
          Delete files; true if removal succeeded.  If the removal failed,
          an  error message is issued.  If -delete fails, find's exit sta‐
          tus will be nonzero (when it eventually exits).  Use of  -delete
          automatically turns on the -depth option.

          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.

You could have moved the delete option as the last one of your command

Alternatively, you could have used something like

find /path -name "*pattern*" | xargs rm -f

or

find /path -name "*pattern*" -exec rm -f {} \;

Tags:

Find