, était en train de filer dans les profondeurs de la mare. Car la question que tu as soumise m'intéresse (spéculativement parlant). Elle comporte 2 points (théoriquement) distincts, que tu souhaites articuler (pratiquement) :
- a) la forme de la commande capable de supprimer tous les fichiers ou dossiers qui résident sur ton Bureau, en échappant ceux que tu as créés toi-même.
- b) la forme du procédé permettant d'exécuter automatiquement la commande précédente.
- a) la forme de la commande.
Il est possible pour réaliser ce que tu souhaites d'appeler l'utilitaire
find ("trouver") avec l'instruction de supprimer tous les objets résidant sur ton Bureau de session, à l'exception de ceux dont l'
user est toi dans la mesure où tu es leur créateur (je vais supposer ici que ton
username est
jameswinston - il suffirait que tu le modifies dans ma commande, à sa place exacte, s'il y avait lieu de le faire). Voici la commande la plus simplifiée possible (syntaxiquement) capable de faire ce que tu demandes :
Bloc de code:
find /Users/jameswinston/Desktop/* ! -user jameswinston | xargs rm -rf
Je te l'éclaire. L'utilitaire
find ("trouver") est appelé sur la cible
/Users/jameswinston/Desktop/* (tous les objets dans l'espace du sous-dossier
Bureau du dossier de compte
jameswinston du répertoire des
Utilisateurs) avec la restriction
! (échapper dans le processus de la recherche les objets correspondant au critère suivant)
-user jameswinston (si
jameswinston est l'
user des objets trouvés) =>
find va donc chercher tous les objets résidant sur ton Bureau à l'exception de ceux dont l'
user est
jameswinston qui vont être échappés de la recherche.
La barre verticale
| qui suit est un
pipe : une redirection de l'action qui précède sur l'action qui suit. C'est comme une proposition subordonnée dans une phrase complexe. Donc le
| va passer le produit de la recherche de
find qui précède à l'utilitaire appelé ensuite qui est
xargs (abrégé de
execute argument : exécuter l'argument stipulé). Cet argument appelle l'utilitaire
rm (comme
remove : supprimer) avec la double option
-rf (
recursive : sur toute les profondeur des dossiers s'ils existent ;
force : sans demande interactive de confirmation en cas de conflit).
=> Je t'invite à tester cette commande en manuel (dans le «
Terminal» at:
Applications/Utilitaires) pour vérifier si elle te convient. Les icônes de volumes montés affichées sur le Bureau ne sont pas des "objets" relevant du répertoire
Desktop, ce ne sont que des affichages icôniques du
Finder de ce qui est contenu dans le répertoire
/Volumes. Donc évidemment, ces éléments d'affichage ne sont pas concernés.
--------------------
- b) l'exécution de la commande.
Je trouve (personnellement) assez dangereux d'automatiser ce genre de commande de destruction (même si elle échappe les objets dont
jameswinston est l'
user). Au moindre re-démarrage pour une raison quelconque en cours de journée (voire au moindre dé-loggement de session), ton Bureau va être nettoyé, alors que ton intention était qu'il ne le soit qu'en interruption d'exercice correspondant à une journée, disons.
Si donc par prudence tu préférais une action volontaire en un clic qui nettoierait ton Bureau seulement si et quand tu le décides, sans qu'il s'agisse d'un automatisme aveugle, alors le plus simple serait de transformer la commande précédente en petite application
AppleScript. Voici comment faire : va à :
Applications/Utilitaires et lance l'«
Éditeur de script».
Dans la fenêtre vierge qui s'affiche, tu fais un copier-coller de la commande (
mutatis mutandis pour le nom d'
user jameswinston s'il y a lieu) :
Bloc de code:
do shell script "find /Users/jameswinston/Desktop/* ! -user jameswinston | xargs rm -rf"
et tu presses le petit bouton du marteau tire-clous au-dessus pour compiler ta ligne. Cela fait, tu vas au menu supérieur :
Fichier > Exporter et tu remplis les champs ainsi (par exemple) :
Exporter comme :
Vide-Bureau
Emplacement : tu laisses
Applications (default)
Format de fichier : tu bascules Script (default) vers
Application (important !)
et tu presses le bouton "
Enregistrer". Ta petite application se trouve copiée dans le dossier d'
Applications de ton compte personnel
jameswinston (pas le répertoire général des Applications) sous l'intitulé : «
Vide-Bureau.app» => tu peux en faire un glisser-déposer dans ton
Dock où désormais tu peux activer l'application en un clic lorsque tu le souhaites.
Personnellement, je préférerais ce clique-bouton délibéré, pour ne pas me laisser prendre à l'improviste par des re-démarrages ou des dé-loggements de session qui effaceraient les objets du Bureau (même en échappant ceux dont dont l'ouvreur de la session est l'
user), si tu en as pas mal qui transitent en cours de journée qui n'ont pas
jameswinston comme
user et qui ne devraient être supprimés qu'à complétion d'exercice journalier.
Si, malgré tout, tu préférais une action automatisée, je pense comme
daffyb que le procédé le plus ustensile (le plus manipulable par l'utilisateur, qui peut très simplement gérer graphiquement cette action : la créer vs la résilier), serait alors pour toi d'aller à :
Menu > Préférences Système > Utilisateurs et groupes > James Winston > Ouverture, de presser le bouton
+ et d'ajouter l'application résidant at:
/Users/jameswinston/Applications/Vide-Bureau.app parmi les processus destinés à se lancer en ouverture de session => ton Bureau serait nettoyé automatiquement au déploiement de ta session individuelle
jameswinston de tous les objets dont l'
user n'est pas
jameswinston (attention : l'action serait suivie d'effet à chaque simple dé-loggement de session suivi d'un re-loggement).
--------------------