10.10 Yosemite Le Finder retient tout

luc1en

Membre actif
19 Août 2011
831
83
Là où je me plais
Bonjour,

j'ai découvert cette commande
Bloc de code:
defaults read com.apple.finder FXDesktopVolumePositions

Finder enregistre et conserve les noms de tous les volumes connectés au Mac, CD, disques, clés USB, cartes mémoire d'appareils photos, etc.

Je ne sais pas comment vider cet historique, les nettoyages que j'effectue régulièrement avec Onyx n'y sont apparemment pas intervenus.
 
Salut luc1en

Tu n'as qu'à passer la commande (en copier-coller direct) :
Bloc de code:
/usr/libexec/PlistBuddy -c 'Delete :FXDesktopVolumePositions' Library/Preferences/com.apple.finder.plist ; killall Finder

  • qui appelle l'utilitaire PlistBuddy (localisé dans le sous-dossier libexec du dossier usr)
  • avec l'option -c (passation de commande directe sans mode interactif)
  • l'énoncé de la commande = 'Delete :FXDesktopVolumePositions' (= détruire le tableau de l'entrée FXDesktopVolumePositions dans le fichier-cible)
  • et le chemin relatif à l'objet : Library/Preferences/com.apple.finder.plist (le fichier com.apple.finder.plist dans le sous-dossier de Preferences de ta Bibliothèque Personnelle de compte - celle-ci désignée comme Library tout court > car lorsque tu ouvres une fenêtre du «Terminal» --> ta localisation d'opérateur est par défaut celle de l'espace racine de ton dossier de compte ~/ ou ${HOME}/ si tu préfères ; ou encore en chemin absolu : /Users/ton_username/ --> espace-racine où se trouve immédiatement l'objet = Library)
  • la commande enchaînée : killall Finder > vide le cache du Finder et le relance par référence forcée au fichier de préférences com.apple.finder.plist.
=> je te conseille de re-démarrer une fois > et si tu repasses la commande informative que tu avais donnée :
Bloc de code:
defaults read com.apple.finder FXDesktopVolumePositions
le tableau de l'entrée FXDesktopVolumePositions devrait être entièrement remis à jour des volumes juste actuellement affichés par le Finder sur ton Bureau à partir de l'ouverture de cette session-ci.
 
Bonjour,

comme toujours, une réponse encyclopédique. Merci @macomaniac.

Du coup et par contrecoup, j'ai découvert et appris bien des choses.
PlistBuddy, dont j'ai appelé le man, est intéressant.
Hélas, le Cerbère du système me claque la porte au nez et me congédie comme un malpropre.
Bloc de code:
No matching processes belonging to you were found

Je vois que je peux intervenir sur le fichier com.apple.finder.plist avec Xcode. Je supprime l'entrée et enregistre le fichier, puis je quitte et relance Finder.
Je retrouve l'entrée FXDesktopVolumePositions intacte.
 
Tu peux tenter cette variante de commande (en ce qui concerne le chemin à la bibliothèque) :
Bloc de code:
/usr/libexec/PlistBuddy -c 'Delete :FXDesktopVolumePositions' ~/Library/Preferences/com.apple.finder.plist ; killall Finder

Mais tu peux aussi préférer passer par une commande defaults plus simple :
Bloc de code:
defaults delete com.apple.finder FXDesktopVolumePositions ; killall Finder
(qui offre l'avantage de ne pas avoir à renseigner de chemin spécifique au fichier .plist > l'abréviation com.apple.finder étant automatiquement interprétée comme équivalant à : /Users/username/Library/Preferences/com.apple.finder .plist)

----------

Si je passe cette commande (ou une des 2 variantes de la PlistBuddy) > alors l'invite de commande se ré-affiche chez moi sans message d'erreur. Et si je passe la commande informative :
Bloc de code:
defaults read com.apple.finder FXDesktopVolumePositions
j'obtiens le retour :
Bloc de code:
The domain/default pair of (/Users/username/Library/Preferences/com.apple.finder, FXDesktopVolumePositions) does not exist
(la paire --> domaine (= com.apple.finder.plist) / entrée (= FXDesktopVolumePositions) n'existe pas. Au sens où l'entrée FXDesktopVolumePositions a été supprimée > et ne sera recréée qu'à condition de se délogger de la session > se re-logger ; ou encore de re-démarrer.

----------

Ainsi > aussi longtemps que la session reste ouverte > le fichier com.apple.finder.plist reste blanc de l'entrée FXDesktopVolumePositions. Quand bien même j'attacherais des disques au Mac > montant des volumes affichés par le Finder.

Après re-démarrage ou re-loggement de session > alors l'entrée sera re-créée d'après un patron de fichier com.apple.finder.plist > et elle ne sera certainement pas vide > mais définie par défaut par le tableau des volumes affichés par le Finder à l'ouverture de session.
 
re,

impeccable ! La commande simplifiée s'est déroulée à la perfection.

Le contrôle est simple, après avoir ouvert un volume réseau, je peux en lire la trace via
Bloc de code:
 defaults read com.apple.finder FXDesktopVolumePositions

C'est un honneur d'avoir été aidé par toi ;)
Merci vénérable @macomaniac
 
:coucou: Sly

quelle différence avec la suppression directe du fichier com.apple.finder.plist ?

Dans ce cas-ci > si tu supprimes le fichier com.apple.finder.plist > pof ! il va être re-créé d'office complet d'après un patron > et donc comporte l'entrée FXDesktopVolumePositions > assortie du tableau des volumes affichés sur le Bureau.

Si tu gardes le fichier > en te bornant à supprimer l'entrée FXDesktopVolumePositions > cette neutralisation d'une entrée dans le fichier persiste tout le long de la session > ce qui fait qu'aucun des volumes qui ont pu se trouver montés en session et donc affichés par le Finder n'est enregistré dans un tableau définissant les valeurs de l'entrée (clé). Au re-démarrage > où l'entrée sera reconstruite d'après un patron > ce ne sont que les volumes montés affichés à partir de l'ouverture de la nouvelle session qui seront inscrits dans le tableau de l'entrée.

Marrant - non ?
 
Merci pour ton explication claire (que j'ai quand même relue plusieurs fois :D) :up: