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.

  • I think there's something wrong with your logic. Can you give a use case where this is used, before you select an answer?
    – Andrew M.
    Commented Sep 21, 2010 at 17:55
  • well I am looking for a way through go through a directory and find a file with particular name , copy that file to remove server and then move that file to archive directory with time stamp. I am using 'find' for looping over files in that particular directory.
    – yogsma
    Commented Sep 21, 2010 at 18:09

2 Answers 2


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 {} \;

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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .