Finding Files that have a Size between two Values given in Bytes

Save this as file /usr/local/bin/find-by-size and mark it executable:

#!/usr/bin/env perl

use strict;

use File::Find;

our $min = $ARGV[0];
our $max = $ARGV[1];
our $dir = $ARGV[2];

do {
    print STDERR "Usage: $0 MIN MAX DIR\n";
    exit(1);
} unless defined $min && defined $max && defined $dir && -d $dir;

sub w {
    -f && do {
        my $bytes = -s;
        $::min <= $bytes <= $::max &&
            printf "% 10d %s\n", $bytes, $File::Find::name;
    }
}

find(\&w, $dir);

Use it as follows:

$ find-by-size 10 20 /etc