n=0; for dir in ./*/; do [[ -d "$dir" ]] || continue n=0 for f in "$dir"/*; do [[ -f "$f" ]] || continue d="$dir/subdir$((n / 1000))" mkdir -p "$d" mv -- "$f" "$d/" ((n++)) done done