| 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/ |
| 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