when I perform

  find /tmp  -name something 

find command not find the something word under /tmp

  echo $?

  I get $?=0

it's OK

but how to enable Exit status diff then 0 when find command not find the something word?

link|improve this question

40% accept rate
Please don't cross-post. – Dennis Williamson Jan 23 '11 at 17:14
feedback

1 Answer

up vote 1 down vote accepted

find returns 0 if it runs successfully and non-zero if there are errors. It does not set the exit code based on whether anything was found. You will need to do something like this:

files=$(find /tmp  -name something)
if [[ -n "$files" ]]
then
    echo "files were found"
fi

It's more likely, however, that you want to do something with the filenames. You can process them in a loop:

find /tmp  -name something | while read -r filename
do
    echo "found: $filename
done

or

while read -r filename
do
    echo "found: $filename
done < <(find /tmp  -name something)

If nothing is found then the loop will exit without doing anything.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

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