Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is probably not a Ubuntu question as such, but a Linux one instead, still hope some Linux user out there can help me understand this.

I'm trying to use the find command to look for some files an a directory tree.

Unfortunately some of the files are named beginning with a dash, like -000.jpg, -002.jpg, 00n.jpg and so on. However, every time that the command locates one of the files named that way, it just interrupts the process and complains in the following way:

find: unknown predicate `-001.jpg'

or whatever the file beginning with a dash is named.

It seems to me that somehow the find command is interpreting the resulting filename as an argument, but I haven't found a way to circumvent this behavior.

Thanks in advance for sharing your wisdom.

share|improve this question
This is strange behavior and probably a bug...but I wonder if what's going on is that you have an expression with wildcards in your find command itself that is being expanded by the shell into filenames starting with - (before it is given to find). Can you edit your question to add the full and exact text of the find command you're issuing, which is producing this problem? – Eliah Kagan May 25 '12 at 19:02
What is the exact command line you are using? – Florian Diesch May 25 '12 at 19:34
up vote 7 down vote accepted

Make sure you quote the patterns you provide to find, otherwise the shell may expand them if there are matching files in the current dir.

find /some/dir -name *.jpg   # bad
find /some/dir -name "*.jpg" # good


share|improve this answer
I just did find ~/folder -name "*.png" and got the error stated in the title. – isomorphismes Jun 27 '15 at 23:02
@isomorphismes, that line will not produce that error message on its own. It must be caused by other factors. E.g. if you try to put the find command in a variable, then run that variable, that is a plausible way to get that type of error. If that's the case, the solution is simple; don't put commands in variables. – geirha Jun 28 '15 at 7:35
I accidentally restarted my computer in the last two days and it works now, so I guess I can't reproduce the problem or test it any longer. I can't think of what would have changed but it wasn't using a variable. I just ran the naked line. – isomorphismes Jun 30 '15 at 20:21
It may have been that I used find /some/dir -name="*.jpg" with a = instead of a space. HTH some googler. – isomorphismes Jul 8 '15 at 23:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.