#!/usr/bin/env bash
set -euo pipefail

# Root of your image folders (e.g. /path/to/ls)
ROOT_DIR="."
# How many to keep
KEEP=1000

for letter_dir in "$ROOT_DIR"/*/; do
  [ -d "$letter_dir" ] || continue
  for scene_dir in "$letter_dir"*/; do
    [ -d "$scene_dir" ] || continue

    echo "Processing $scene_dir"
    # glob expands sorted by name
    files=( "$scene_dir"/* )
    total=${#files[@]}

    if (( total > KEEP )); then
      # build list of files to delete (all after the first $KEEP)
      to_delete=( "${files[@]:$KEEP}" )
      echo "  Deleting $((total - KEEP)) files..."
      rm -v "${to_delete[@]}"
    else
      echo "  Only $total files; skipping."
    fi
  done
done

