Cacher et Révéler Fichiers et Dossiers sur macOS
Apprenez à contrôler la visibilité des fichiers et dossiers sur Mac. Essentiel pour protéger les données sensibles, organiser les espaces de travail et gérer l'accès aux fichiers système dans les environnements d'entreprise.
Cacher Fichiers ou Dossiers Spécifiques
Cachez des fichiers ou dossiers individuels de la vue Finder :
#!/bin/bash
# Configuration
TARGET_PATH="/Users/$(stat -f "%Su" /dev/console)/Desktop/fichier-sensible.txt"
echo "Cachant fichier/dossier : $TARGET_PATH"
# Cacher le fichier ou dossier spécifié
if [[ -e "$TARGET_PATH" ]]; then
chflags hidden "$TARGET_PATH"
echo "✅ Caché avec succès : $TARGET_PATH"
else
echo "❌ Fichier/dossier non trouvé : $TARGET_PATH"
exit 1
fi
Révéler Fichiers ou Dossiers Spécifiques
Révélez des fichiers ou dossiers précédemment cachés :
#!/bin/bash
# Configuration
TARGET_PATH="/Users/$(stat -f "%Su" /dev/console)/Desktop/fichier-sensible.txt"
echo "Révélant fichier/dossier : $TARGET_PATH"
# Révéler le fichier ou dossier spécifié
if [[ -e "$TARGET_PATH" ]]; then
chflags nohidden "$TARGET_PATH"
echo "✅ Révélé avec succès : $TARGET_PATH"
else
echo "❌ Fichier/dossier non trouvé : $TARGET_PATH"
exit 1
fi
Révéler Tous les Fichiers Cachés
Affichez tous les fichiers et dossiers cachés dans Finder (y compris fichiers système) :
#!/bin/bash
# Obtenir le contexte utilisateur actuel
CURRENT_USER=$(stat -f "%Su" /dev/console)
CURRENT_USER_UID=$(id -u "$CURRENT_USER")
echo "Révélant tous les fichiers cachés pour utilisateur : $CURRENT_USER"
# Activer l'affichage de tous les fichiers cachés dans Finder
launchctl asuser $CURRENT_USER_UID sudo -iu "$CURRENT_USER" \
defaults write com.apple.finder AppleShowAllFiles -boolean true
# Redémarrer Finder pour appliquer changements
launchctl asuser $CURRENT_USER_UID sudo -iu "$CURRENT_USER" \
killall Finder
echo "✅ Tous les fichiers cachés sont maintenant visibles"
echo "⚠️ Les fichiers cachés apparaissent estompés dans Finder"
Cacher Tous les Fichiers Révélés
Cachez tous les fichiers et dossiers cachés précédemment révélés :
#!/bin/bash
# Obtenir le contexte utilisateur actuel
CURRENT_USER=$(stat -f "%Su" /dev/console)
CURRENT_USER_UID=$(id -u "$CURRENT_USER")
echo "Cachant tous les fichiers révélés pour utilisateur : $CURRENT_USER"
# Désactiver l'affichage des fichiers cachés dans Finder
launchctl asuser $CURRENT_USER_UID sudo -iu "$CURRENT_USER" \
defaults write com.apple.finder AppleShowAllFiles -boolean false
# Redémarrer Finder pour appliquer changements
launchctl asuser $CURRENT_USER_UID sudo -iu "$CURRENT_USER" \
killall Finder
echo "✅ Les fichiers cachés sont maintenant dissimulés"
echo "🔒 Les fichiers système sont protégés de la vue"
Gestion Cachage/Révélation en Masse
Script pour gérer plusieurs fichiers et dossiers :
#!/bin/bash
# Fonction pour cacher plusieurs éléments
hide_multiple_items() {
local items=("$@")
local hidden_count=0
echo "🔒 Cachant plusieurs fichiers et dossiers..."
for item in "${items[@]}"; do
if [[ -e "$item" ]]; then
chflags hidden "$item"
echo " ✅ Caché : $item"
((hidden_count++))
else
echo " ❌ Non trouvé : $item"
fi
done
echo "📊 Caché avec succès $hidden_count éléments"
}
# Fonction pour révéler plusieurs éléments
unhide_multiple_items() {
local items=("$@")
local unhidden_count=0
echo "👁️ Révélant plusieurs fichiers et dossiers..."
for item in "${items[@]}"; do
if [[ -e "$item" ]]; then
chflags nohidden "$item"
echo " ✅ Révélé : $item"
((unhidden_count++))
else
echo " ❌ Non trouvé : $item"
fi
done
echo "📊 Révélé avec succès $unhidden_count éléments"
}
# Configuration - Ajoutez vos chemins fichiers/dossiers ici
CURRENT_USER=$(stat -f "%Su" /dev/console)
ITEMS_TO_MANAGE=(
"/Users/$CURRENT_USER/Desktop/confidentiel"
"/Users/$CURRENT_USER/Documents/notes-privees.txt"
"/Users/$CURRENT_USER/Desktop/dossier-temp"
)
# Choisir opération : hide ou unhide
OPERATION="hide" # Changer vers "unhide" pour révéler éléments
case "$OPERATION" in
"hide")
hide_multiple_items "${ITEMS_TO_MANAGE[@]}"
;;
"unhide")
unhide_multiple_items "${ITEMS_TO_MANAGE[@]}"
;;
*)
echo "❌ Opération invalide. Utilisez 'hide' ou 'unhide'"
exit 1
;;
esac
Gestion Visibilité Fichiers Entreprise
Script complet pour gestion fichiers entreprise :
#!/bin/bash
# Configuration visibilité fichiers entreprise
COMPANY_NAME="MacFleet"
POLICY_TYPE="security" # Options : security, organization, compliance
# Définir motifs spécifiques politique
case "$POLICY_TYPE" in
"security")
HIDE_PATTERNS=(
"*/confidentiel*"
"*/prive*"
"*/.ssh*"
"*/credentials*"
)
;;
"organization")
HIDE_PATTERNS=(
"*/temp*"
"*/cache*"
"*/.DS_Store"
"*/thumbs.db"
)
;;
"compliance")
HIDE_PATTERNS=(
"*/audit*"
"*/logs*"
"*/sauvegarde*"
"*/archive*"
)
;;
esac
# Fonction pour appliquer politique visibilité entreprise
apply_enterprise_visibility_policy() {
local current_user=$(stat -f "%Su" /dev/console)
local current_user_uid=$(id -u "$current_user")
echo "🏢 Application Politique Visibilité Fichiers Entreprise"
echo "======================================================="
echo "Politique : $POLICY_TYPE"
echo "Appareil : $(hostname)"
echo "Utilisateur : $current_user"
echo "Horodatage : $(date)"
local hidden_count=0
# Traiter chaque motif
for pattern in "${HIDE_PATTERNS[@]}"; do
echo "🔍 Traitement motif : $pattern"
# Trouver fichiers correspondant au motif dans répertoires utilisateur
while IFS= read -r -d '' file; do
if [[ -e "$file" ]]; then
chflags hidden "$file"
echo " 🔒 Caché : $file"
((hidden_count++))
fi
done < <(find "/Users/$current_user" -name "${pattern#*/}" -print0 2>/dev/null)
done
echo "✅ Politique visibilité entreprise appliquée"
echo "📊 Caché $hidden_count éléments sur $(hostname)"
}
# Exécuter politique entreprise
apply_enterprise_visibility_policy
Vérifier Statut Visibilité Fichiers
Script pour vérifier si fichiers ou dossiers sont cachés :
#!/bin/bash
# Fonction pour vérifier statut visibilité
check_visibility_status() {
local target_path="$1"
if [[ ! -e "$target_path" ]]; then
echo "❌ Fichier/dossier n'existe pas : $target_path"
return 1
fi
# Vérifier indicateur caché
local flags=$(ls -lO "$target_path" 2>/dev/null | awk '{print $5}')
if [[ "$flags" == *"hidden"* ]]; then
echo "🔒 CACHÉ : $target_path"
else
echo "👁️ VISIBLE : $target_path"
fi
}
# Fonction pour scanner répertoire pour éléments cachés
scan_directory_visibility() {
local scan_dir="$1"
local hidden_count=0
local visible_count=0
echo "📊 Scan répertoire : $scan_dir"
echo "================================="
if [[ ! -d "$scan_dir" ]]; then
echo "❌ Répertoire n'existe pas : $scan_dir"
return 1
fi
# Scanner tous éléments dans répertoire
while IFS= read -r -d '' item; do
local flags=$(ls -lO "$item" 2>/dev/null | awk '{print $5}')
local basename_item=$(basename "$item")
if [[ "$flags" == *"hidden"* ]]; then
echo " 🔒 $basename_item (caché)"
((hidden_count++))
else
echo " 👁️ $basename_item (visible)"
((visible_count++))
fi
done < <(find "$scan_dir" -maxdepth 1 -print0 2>/dev/null)
echo ""
echo "Résumé :"
echo " Éléments cachés : $hidden_count"
echo " Éléments visibles : $visible_count"
echo " Total éléments : $((hidden_count + visible_count))"
}
# Configuration
CURRENT_USER=$(stat -f "%Su" /dev/console)
CHECK_PATH="/Users/$CURRENT_USER/Desktop"
# Vérifier fichier spécifique ou scanner répertoire
if [[ -f "$CHECK_PATH" ]]; then
check_visibility_status "$CHECK_PATH"
elif [[ -d "$CHECK_PATH" ]]; then
scan_directory_visibility "$CHECK_PATH"
else
echo "❌ Chemin n'existe pas : $CHECK_PATH"
fi
Utilisation avec MacFleet
- Configurez fichiers/dossiers cibles ou motifs dans variables script
- Choisissez entre opérations individuelles ou en masse
- Déployez via l'exécution de script distant MacFleet
- Vérifiez changements visibilité dans Finder
Cas d'Usage Communs
Scénario | Commande | Objectif |
---|---|---|
Cacher fichier sensible | chflags hidden fichier.txt | Protection données |
Cacher dossier temp | chflags hidden temp/ | Nettoyage espace travail |
Afficher fichiers système | AppleShowAllFiles true | Dépannage |
Cacher fichiers système | AppleShowAllFiles false | Protection utilisateur |
Niveaux Visibilité Fichiers
Type | Visibilité | Description |
---|---|---|
Fichiers normaux | Toujours visibles | Fichiers utilisateur standard |
Fichiers cachés | Invisibles | Fichiers cachés par chflags |
Fichiers système | Cachés par défaut | Fichiers système macOS |
Fichiers point | Cachés dans Finder | Fichiers cachés style Unix |
Notes Importantes
Fichiers système : Impossible de révéler fichiers système cachés par défaut macOS Persistance : Indicateurs cachés persistent lors redémarrages et déplacements fichiers Sécurité : Caché ≠ sécurisé - fichiers restent accessibles via Terminal Redémarrage Finder : Requis lors changement paramètre AppleShowAllFiles
Dépannage
Permission refusée : Assurez-vous propriété fichier et permissions appropriées
Finder ne se met pas à jour : Essayez killall Finder
pour forcer rafraîchissement
Fichiers encore visibles : Vérifiez si cachage niveau système requis