diff --git a/lib/clean/user.sh b/lib/clean/user.sh index 7e605e2..939b1c9 100644 --- a/lib/clean/user.sh +++ b/lib/clean/user.sh @@ -583,10 +583,15 @@ clean_application_support_logs() { ((cleaned_count++)) found_any=true if [[ "$DRY_RUN" != "true" ]]; then - for item in "$candidate"/*; do - [[ -e "$item" ]] || continue - safe_remove "$item" true > /dev/null 2>&1 || true - done + # For directories with many files, use find -delete for performance + # This avoids shell expansion and individual safe_remove calls + if ! find "$candidate" -mindepth 1 -delete 2> /dev/null; then + # Fallback: try item-by-item if find fails + for item in "$candidate"/*; do + [[ -e "$item" ]] || continue + safe_remove "$item" true > /dev/null 2>&1 || true + done + fi fi fi fi