There are three basic forms of the copy command:
The second form is like the first, except that no filename is specified, just a target directory. In this case the source file is copied to the target directory, and the name of the source file is preserved. Again, if a file already exists in the target directory that has the same name as the source file, it will be overwritten unless you specify the -i option.
The third form works two ways to recursively copy all files and subdirectories in the source directory to the target directory. If the target directory exists before the copy, then the source directory will become a subdirectory of the target directory. If the target directory does not exist, then the source directory is simply copied and given the todirectory name at the destination. Be as careful of recursive copying as recursive deletion, since a statement like the following will cause a recursive copy that won't stop until the disk is full or until you have exhausted your disk quota:
cp -r lisp/tools lisp/tools/parser