diff --git a/src/zfs-auto-snapshot.sh b/src/zfs-auto-snapshot.sh old mode 100755 new mode 100644 index 5ef5bae..be81fcf --- a/src/zfs-auto-snapshot.sh +++ b/src/zfs-auto-snapshot.sh @@ -440,11 +440,16 @@ do # Just testing "$ii" != ${ii#$jj} would incorrectly match. iii="$ii/" - # Exclude datasets that are not named on the command line. + # Exclude datasets + # * that are not named on the command line or + # * those whose prefix is not on the command line (if --recursive flag is set) IN_ARGS='0' for jj in "$@" do if [ "$jj" = '//' -o "$jj" = "$ii" ] + then + IN_ARGS=$(( $IN_ARGS + 1 )) + elif [ -n "$opt_recursive" -a "$iii" != "${iii#$jj}" ] then IN_ARGS=$(( $IN_ARGS + 1 )) fi