LittleDemon WebShell


Linux webm007.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Path : /home/eglisebaa/
File Upload :
Command :
Current File : /home/eglisebaa/6digits.sh

#!/usr/bin/env bash
# list_6digit_dirs.sh — Liste (et supprime en option) les répertoires dont le nom est exactement 6 chiffres
set -euo pipefail

DELETE=0
ASSUME_YES=0
BASE_DIR="/www"

usage() {
  echo "Usage: $0 [--delete|-d] [--yes|-y] [BASE_DIR]"
  echo "  Sans options: liste les répertoires à 6 chiffres sous BASE_DIR (par défaut /www)."
  echo "  --delete / -d : supprime récursivement les répertoires listés."
  echo "  --yes    / -y : ne pas demander de confirmation."
}

# Parse arguments
while [ "$#" -gt 0 ]; do
  case "$1" in
    -d|--delete)
      DELETE=1; shift ;;
    -y|--yes)
      ASSUME_YES=1; shift ;;
    -h|--help)
      usage; exit 0 ;;
    *)
      BASE_DIR="$1"; shift ;;
  esac
done

if [ ! -d "$BASE_DIR" ]; then
  echo "Erreur: répertoire introuvable: $BASE_DIR" >&2
  exit 1
fi

# Collecte des répertoires au nom 6 chiffres
mapfile -t DIRS < <(find "$BASE_DIR" -type d -regextype posix-extended -regex '.*/[0-9]{6}$' -print 2>/dev/null | sort -u)

if [ "${#DIRS[@]}" -eq 0 ]; then
  echo "Aucun répertoire à 6 chiffres trouvé sous: $BASE_DIR"
  exit 0
fi

printf "%s\n" "${DIRS[@]}"

if [ "$DELETE" -eq 1 ]; then
  if [ "$ASSUME_YES" -ne 1 ]; then
    echo "\n${#DIRS[@]} répertoire(s) seront supprimés récursivement. Confirmer en tapant: yes"
    read -r CONFIRM
    if [ "$CONFIRM" != "yes" ]; then
      echo "Annulé."; exit 1
    fi
  fi
  for d in "${DIRS[@]}"; do
    rm -rf -- "$d"
    echo "Supprimé: $d"
  done
fi

LittleDemon - FACEBOOK
[ KELUAR ]