Q:

File name using find

How to get the file name while using find command? When I use find command to search particular type of files from a directory and subdirectories, I get the whole path of that file, how do I get the file name only? The problem I am facing is when I am moving that found file to archive directory, it says "there is no such directory" and it is because of whole path I am getting while searching for the file. 

A:

The basename command will give you just the name of the file and not the full path, which you can execute on your found file like this:
find . -name filename -exec basename {} \;

A:

Use find ... -printf '%f\n'
Or, to solve your stated problem:
find ... -name FOO -print0 | xargs --no-run-if-empty --null mv --target-directory=TARGET

