When I do:
$ find /
It searches the entire system. How do I prevent that?
(This question comes from an "answer" to another question.)
-
Use the -prune option.
From Jon Ericson -
You might be better off using wildcards. For instance, if you want to find all ksh scripts in the current directory:
$ ls *.kshFrom Jon Ericson -
Consider:
-maxdepth n True if the depth of the current file into the tree is less than or equal to n. -mindepth n True if the depth of the current file into the tree is greater than or equal to n.Jon Ericson : Note that -maxdepth and -mindepth are not portable. GNU find has those options and could be installed if needed, however.From dmckee -
You may even do
echo /specific/dir/*.jpgas it's your shell that expands the wildcard. Typing
ls *.jpgis equivalent to typing
ls foo.jpg bar.jpggiven foo.jpg and bar.jpg are all the files that end with ".jpg" in the current directory.
From aib -
G'day,
Just wanted to expand on the suggestion from Jon to use -prune. It isn't the easiest of find options to use, for example to just search in the current directory the find command looks like:
find . \( -type d ! -name . -prune \) -o \( <the bit you want to look for> \)this will stop find from descending into sub-directories within this directory.
Basically, it says, "prune anything that is a directory, whose name isn't ".", i.e. current dir."
The find command evals left to right for each item found in the current directory so after completion of the first element, i.e. the prune segment, it will then continue on with the matched item in your second -o (OR'd) expression.
HTH.
cheers, Rob
From Rob Wells
0 comments:
Post a Comment