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[@]}"