Skip to content

Stopping find searching remote directories.

May 8, 2009

Grizzled UNIX users look away now.

The find command is a wonderful thing but there are some uses of it that seem to cause confusion enough that it seems worth documenting them for google. Today’s is:

How can I stop find(1) searching remote file systems?

On reading the documentation the “-local” option should be just what you want and it is, but not on it’s own. If you just do:

$ find . -local -print

It will indeed only report on files that are on local file systems below the current directory. However it will search the entire directory tree for those local files even if the directory tree is on NFS

To get find to stop searching when it finds a remote file system you need:


$ find . \( ! -local -prune \) -o -print

simple.

Advertisements

From → Solaris

3 Comments
  1. Ah. Nice reminder.
    It is also nice to exclude virtual filesystems too:
    find / \( ! -fstype ufs -prune \) -o \( ! -fstype zfs -prune \) -o -print

  2. As *easy* as it is, it’s still the damnedest concatenation to spill from ones fingers. Specially considering the amount of times one wishes to use this when looking for something from / (root).

  3. /kill find or /kill -9 find

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: