Vider la Corbeille sur macOS
Apprenez à vider à distance les corbeilles sur Mac à l'aide de scripts. Cela aide à libérer de l'espace disque et gérer le stockage efficacement sur votre flotte Mac.
Vider la Corbeille d'un Utilisateur Spécifique
Supprimer tous les éléments de la corbeille d'un utilisateur spécifique :
#!/bin/bash
# Spécifier le nom d'utilisateur
USERNAME="john"
# Vider la corbeille pour un utilisateur spécifique
sudo rm -rf /Users/"${USERNAME}"/.Trash/*
echo "Corbeille vidée pour l'utilisateur : ${USERNAME}"
Vider la Corbeille de l'Utilisateur Actuel
Détecter automatiquement et vider la corbeille de l'utilisateur actuellement connecté :
#!/bin/bash
# Obtenir l'utilisateur actuel
CURRENT_USER=$(stat -f "%Su" /dev/console)
# Vider la corbeille pour l'utilisateur actuel
su "$CURRENT_USER" -c "rm -rf ~/.Trash/*"
echo "Corbeille vidée pour l'utilisateur actuel : ${CURRENT_USER}"
Script Avancé avec Validation
Script avec gestion d'erreur et journalisation :
#!/bin/bash
# Fonction pour journaliser les messages
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S'): $1"
}
# Obtenir l'utilisateur actuel
CURRENT_USER=$(stat -f "%Su" /dev/console)
if [[ -z "$CURRENT_USER" ]]; then
log_message "Erreur : Impossible de déterminer l'utilisateur actuel"
exit 1
fi
log_message "Vidage de la corbeille pour l'utilisateur : ${CURRENT_USER}"
# Vérifier si le répertoire corbeille existe
TRASH_DIR="/Users/${CURRENT_USER}/.Trash"
if [[ ! -d "$TRASH_DIR" ]]; then
log_message "Répertoire corbeille non trouvé : ${TRASH_DIR}"
exit 1
fi
# Compter les éléments avant suppression
ITEM_COUNT=$(find "$TRASH_DIR" -mindepth 1 -maxdepth 1 | wc -l)
log_message "Trouvé ${ITEM_COUNT} éléments dans la corbeille"
if [[ $ITEM_COUNT -eq 0 ]]; then
log_message "La corbeille est déjà vide"
exit 0
fi
# Vider la corbeille
if su "$CURRENT_USER" -c "rm -rf ~/.Trash/*"; then
log_message "Corbeille vidée avec succès pour ${CURRENT_USER}"
else
log_message "Échec du vidage de la corbeille"
exit 1
fi
Gestion Corbeille Multi-Utilisateurs
Vider la corbeille pour tous les utilisateurs du système :
#!/bin/bash
# Fonction pour journaliser les messages
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S'): $1"
}
log_message "Démarrage du nettoyage corbeille multi-utilisateurs"
# Trouver tous les répertoires utilisateurs
for USER_DIR in /Users/*; do
if [[ -d "$USER_DIR" && ! "$USER_DIR" =~ /Users/(Shared|Guest) ]]; then
USERNAME=$(basename "$USER_DIR")
TRASH_DIR="$USER_DIR/.Trash"
if [[ -d "$TRASH_DIR" ]]; then
ITEM_COUNT=$(find "$TRASH_DIR" -mindepth 1 -maxdepth 1 2>/dev/null | wc -l)
if [[ $ITEM_COUNT -gt 0 ]]; then
log_message "Vidage corbeille pour utilisateur : ${USERNAME} (${ITEM_COUNT} éléments)"
sudo rm -rf "$TRASH_DIR"/*
log_message "Nettoyage corbeille terminé pour : ${USERNAME}"
else
log_message "Corbeille déjà vide pour utilisateur : ${USERNAME}"
fi
fi
fi
done
log_message "Nettoyage corbeille multi-utilisateurs terminé"
Utilisation avec Roundfleet
- Choisissez le script approprié selon vos besoins
- Pour des utilisateurs spécifiques, modifiez la variable
USERNAME - Déployez via l'exécution de script distant Roundfleet
- Surveillez les résultats dans l'historique des actions
Prérequis
- Accès Disque Complet : Accordez l'accès disque complet à l'agent Roundfleet dans Réglages Système > Confidentialité et Sécurité > Accès Disque Complet
- Privilèges administrateur : Les scripts nécessitent un accès sudo pour les opérations système
Considérations de Sécurité
- Vérifiez les permissions utilisateur avant d'exécuter les scripts
- Considérez sauvegarder les fichiers importants avant suppression de corbeille en masse
- Testez sur un nombre limité d'appareils avant déploiement flotte
Dépannage
Permission refusée : Assurez-vous que l'agent Roundfleet a l'Accès Disque Complet Utilisateur non trouvé : Vérifiez que le nom d'utilisateur existe sur l'appareil cible Échec du script : Vérifiez si l'utilisateur est actuellement connecté pour les opérations spécifiques
Note : Les éléments supprimés ne peuvent pas être récupérés après exécution de ces scripts. Validez toujours sur des systèmes de test d'abord.