find
Most error messages produced by find are self-explanatory. Error messages sometimes include a filename. When this happens, the filename is quoted in order to prevent any unusual characters in the filename making unwanted changes in the state of the terminal.
This means that the find
command line included something that
started with a dash or other special character. The find
program tried to interpret this as a test, action or option, but
didn’t recognise it. If it was intended to be a test, check what was
specified against the documentation. If, on the other hand, the
string is the name of a file which has been expanded from a wildcard
(for example because you have a ‘*’ on the command line),
consider using ‘./*’ or just ‘.’ instead.
This usually happens if you have an extra bracket on the command line (for example ‘find . -print \)’).
These messages might appear when find
moves into a directory
and finds that the device number and inode are different from what it
expected them to be. If the directory find
has moved into is
on a network filesystem (NFS), it will not issue this message, because
automount
frequently mounts new filesystems on directories as
you move into them (that is how it knows you want to use the
filesystem). So, if you do see this message, be wary –
automount
may not have been responsible. Consider the
possibility that someone else is manipulating the filesystem while
find
is running. Some people might do this in order to mislead
find
or persuade it to look at one set of files when it thought
it was looking at another set.
This message is issued when find
moves into a directory and ends up
somewhere it didn’t expect to be. This happens in one of two
circumstances. Firstly, this happens when automount
intervenes
on a system where find
doesn’t know how to determine what
the current set of mounted filesystems is.
Secondly, this can happen when the device number of a directory
appears to change during a change of current directory, but
find
is moving up the filesystem hierarchy rather than down into it.
In order to prevent find
wandering off into some unexpected
part of the filesystem, we stop it at this point.
This message is issued when a problem similar to the above occurs on a
system where find
doesn’t know how to figure out the current
list of mount points. Ask for help on bug-findutils@gnu.org.
This message is issued when find
moves into a directory and
discovers that the inode number of that directory
is different from the inode number that it obtained when it examined the
directory previously. This usually means that while
find
was deep in a directory hierarchy doing a
time consuming operation, somebody has moved one of the parent directories to
another location in the same filesystem. This may or may not have been done
maliciously. In any case, find
stops at this point
to avoid traversing parts of the filesystem that it wasn’t
intended to. You can use ls -li
or find /path -inum
12345 -o -inum 67893
to find out more about what has happened.
Please submit a bug report. You may well be asked questions about
your system, and if you compiled the findutils
code yourself,
you should keep your copy of the build tree around. The likely
explanation is that your system has a buggy implementation of
fnmatch
that looks enough like the GNU version to fool
configure
, but which doesn’t work properly.
This normally happens if you use the -exec
action or
something similar (-ok
and so forth) but the system has run out
of free process slots. This is either because the system is very busy
and the system has reached its maximum process limit, or because you
have a resource limit in place and you’ve reached it. Check the
system for runaway processes (with ps
, if possible). Some process
slots are normally reserved for use by ‘root’.
Some program which was launched with -exec
or similar was killed
with a fatal signal. This is just an advisory message.