--parents copies the directory structure, so you should get rid of this.
As you wrote this, find is executed, and the output is placed on the command line in such a way that cp cannot distinguish between spaces separating file names and spaces inside the file name. Better do something like
$ find . -name \*.xls -exec cp {} newDir \;
in which cp is executed for each file name that find finds, and passed the file name correctly. Here is more about this technique.
Instead, you can use zsh and just type
$ cp **/*.xls target_directory
zsh can extend wildcards to include subdirectories, and makes such things very easy.
Brian Agnew Mar 25 '13 at 14:10 2013-03-25 14:10
source share