I don't quite understand the example given from the 'man find', can anyone give me some examples and explanations? Can I combine regular expression in it?
the more detailed question is like this: write a shell script, changeall, which has an interface like "changeall [-r|-R] "string1" "string2". It will find all files with an suffix of .h, .C, .cc, or .cpp and change all occurrences of "string1" to "string2". -r is option for staying in current dir only or including subdir's. NOTE: 1) for non-recursive case, 'ls' is NOT allowed, we could only use 'find' and 'sed'. 2) I tried 'find -depth' but it was NOT supported. That's why I was wondering if '-prune' could help, but didn't understand the example from 'man find'.
EDIT2: I was doing assignment, I didn't ask question in great details because I would like to finish it myself. Since I already done it and hand it in, now I can state the whole question. Also, I managed to finish the assignment without using -prune, but would like to learn it anyway.
Show everything including dir itself but not its long boring contents:
I am no expert at this (and this page was very helpful along with http://mywiki.wooledge.org/UsingFind)
Just noticed
-path
is for a path that fully matches the string/path that comes just afterfind
(.
in theses examples) where as-name
matches all basenames.blocks the .git directory in your current directory ( as your finding in
.
)blocks all .git subdirectories recursively.
Note the
./
is extremely important!!-path
must match a path anchored to.
or whatever comes just after find if you get matches with out it (from the other side of the or '-o
') there probably not being pruned! I was naively unaware of this and it put me of using -path when it is great when you don't want to prune all subdirectory with the same basename :D