I need to compare two different versions of a source tree excluding certain directories and print out some statistics on the files which have been changed, removed or added.diff -urN -x 'bb*' old new | diffstat
diff won't help much as I need an explicit list of new/added files in a tree of ~10K files. Besides -x only works on basenames.
and I want to exclude all paths starting with ./bb This one is easy: find . ! -path './bb*' Now I want to make it into a generic script: DIR=. OPT='! -path $DIR/bb*' find $DIR $OPT $DIR and * within OPT are essential and no matter what I've tried I can't get the parameter expansion right.Use arrays: declare -a options options=( '!' '-path' './bb*') options+=( '-type' 'f') ... And then: find $DIR "${options[ ]}"
This one's interesting. Thanks Luciano! DIR=. OPT=('!' '-path' $DIR'/bb*') find $DIR "${OPT[ ]}"