10

I am trying to find some files inside a directory. By default, the find command is searching the directory which I have specified and it's sub directories.

I tried to use depth/maxdepth and prune, but nothing helped to overcome this. Can somebody point out the right way to use depth/prune in Solaris?

My code looks like this:

find file_path -depth 1 -name '*.log'

I am getting the following error:

find: bad option 1
find: [-H | -L] path-list predicate-list
0

1 Answer 1

16

You're confusing two unrelated options that have vaguely similar names:

  • -depth doesn't take any argument. If present, it tells find to process the contents of a directory before processing the directory itself.
  • -maxdepth N (where N is an integer) limits the recursion to N levels of subdirectories.

The -maxdepth option is an extension found in some versions of find, but not Solaris's. There's a trick to using only standard options to find to process a directory without recursing: use -prune on subdirectories, but exclude the toplevel directory. Since the only way to match the toplevel directory is by name, arrange for the name to be . (which will never be the name of a subdirectory).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print
4
  • I was facing this very problem, and this solution helped. I spent a day trying to find a solution to getting this to work. Grrr, Solaris. Sep 21, 2016 at 10:06
  • Do you see any issue using sed to remove the /./ find ${directory}/sh/. -name . -o -type d -prune -o -print | sed 's/\/\.\//\//'
    – Ethan Post
    Aug 8, 2018 at 0:39
  • @EthanPost You can do that, but find implementations without -mindepth and -maxdepth are a vanishing breed. If your find has -maxdepth, use find /directory/to/traverse -mindepth 1 -maxdepth 1 -name '*.log' Aug 8, 2018 at 5:52
  • @Gilles Just takes one to break you when you are building a framework that may need to run in just such a circumstance! That market may be my bread and butter someday! Thanks for the help.
    – Ethan Post
    Aug 8, 2018 at 14:13

You must log in to answer this question.

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