The standard command find lets you match files based on metadata (name, permissions, etc.) and act on them. It traverses a directory recursively. The basic syntax is find followed by the directory(s) to traverse, followed by match criteria, optionally followed by a command to execute (if you don't specify a command, find prints the matching names).

This executes the command mv -t /var/spool/postfix/temp-spam … for the matching files: {} is replaced by the list of all matching files (if the list is too long, find will execute mv as many times at it takes).

The -t option to mv is a GNU (Linux/Cygwin) extension. On systems that don't have it, you need to pass the file names to move first, and then the destination. The -exec … + action only allows passing the file names at the end of the command line, so you need to resort to other methods.

(Unlike the find commands above, this doesn't recurse into subdirectories. It isn't needed here, but if you need it, insert **/ in the path to say “zero or more subdirectories”, e.g. /var/spool/postfix/maildrop/**/*(u:web2:).)