10.9 Mavericks Commande Terminal pour masquer des extensions Finder

moderno31

Membre expert
Club iGen
21 Avril 2011
1 359
106
Salzbourg
Bonjour

Je cherche une commande Terminal me permettant de masquer automatiquement toutes les extensions de fichier dans mon Finder.
J'ai essayé Finder/Préférences/Avancé : Rien ne change

Sinon,
Merci de votre aide
 
Bonjour

Je cherche une commande Terminal me permettant de masquer automatiquement toutes les extensions de fichier dans mon Finder.
J'ai essayé Finder/Préférences/Avancé : Rien ne change

Sinon,
Merci de votre aide
Salut.
Voir ceci :
https://support.apple.com/kb/PH19072?locale=fr_FR&viewlocale=fr_FR

Sinon tu peux réinitialiser les options du finder.
Tu tapes dans le terminal (Applications/Utilitaires/Terminal) :
rm Library/Preferences/com.apple.finder.plist
Puis tu fais :
cmd+alt+esc Finder -> relancer
 
Dernière édition par un modérateur:
Salut moderno

Les extensions qui terminent l'intitulé de nombreux fichiers (genre : .jpg, .png, .txt, .doc...) font partie de leur définition d'objets logiques : elles servent à appeler par défaut telle application (plutôt qu'une autre) afin d'ouvrir ce fichier et de rendre son contenu représentable, graphiquement parlant. Ainsi, si tu as un fichier dont l'intitulé se termine par l'extension .txt, c'est l'application «TextEdit» qui l'ouvrira par défaut (lorsque tu feras un double-clic dessus) et représentera son contenu dans une fenêtre graphique ; si tu as un fichier dont l'intitulé se termine par l'extension .png, ce sera alors l'application «Aperçu» qui sera appelée par défaut etc. (à moins que tu n'aies établi des préférences d'ouverture personnalisées).

Mais ce n'est pas parce que l'extension fait partie intégrante de la définition des objets logiques que sont de nombreux fichiers, qu'elle doit pour autant apparaître dans la présentation graphique qu'en fait le Finder. Parce qu'avoir sous le nez, dans une fenêtre, une collection de fichiers dont chaque intitulé montre l'extension - ça peut paraître "lourdingue", visuellement parlant. Par voie de conséquence, le Finder a la possibilité de présenter graphiquement les fichiers soit en montrant l'extension qui fait partie de la définition de leur intitulé, soit en la masquant afin d'alléger leur mode d'affichage graphique. Lorsque le Finder n'affiche pas les extensions terminales des intitulés de fichiers, ça ne veut donc pas dire que ces extensions sont supprimées - mais simplement qu'elles sont masquées pour la commodité visuelle de l'utilisateur.

--------------------​

Normalement, comme tu en es averti d'après ton message, il suffit d'aller à : Finder > Préférences > Options avancées > Afficher toutes les extensions de fichiers et soit de cocher la case correspondante, pour que le Finder affiche graphiquement les extensions ; soit de décocher la case, pour que le Finder masque les extensions.

Cette action graphique revient, stricto sensu, à passer des commandes qui affectent le fichier de préférences relatif au Finder dans la Bibliothèque de l'utilisateur => ~/Library/Preferences/com.apple.finder.plist. En en-tête de ce fichier, on trouve en effet une clé :
Bloc de code:
<key>AppleShowAllExtensions</key>
associée à une valeur qui varie avec l'option choisie. Si la case des Options avancées du Finder est cochée, alors on a :
Bloc de code:
<key>AppleShowAllExtensions</key>
<true/>
mais si la case est décochée, on a au contraire :
Bloc de code:
<key>AppleShowAllExtensions</key>
<false/>

En principe (par exemple avec le Finder de mon MacBook Pro 17" Late_2011, OS «El Capitan 10.11.5 [beta]») cocher / décocher la case se trouve suivi d'effet, mais avec le phénomène de décalage suivant : si je coche la case (afficher les extensions), immédiatement les extensions des fichiers présents dans une fenêtre du Finder ou sur le Bureau se trouvent révélées ; mais c'est simplement médiatement (après quelques secondes de délai) que la chaîne associée à la clé <key>AppleShowAllExtensions</key> dans le fichier com.apple.finder.plist se trouve modifiée à la valeur <true/>. Il en va de même pour l'option inverse : décocher la case a pour effet graphique immédiat le masquage des extensions des fichiers dans la présentation du Finder ; mais seulement pour effet graphique médiat la modification de la chaîne associée à la clé <key>AppleShowAllExtensions</key> dans le fichier com.apple.finder.plist, qui se trouve virée à la valeur <false/> après quelques secondes seulement.

Ce mécanisme logique de décalage entre l'effet d'affichage immédiat et l'effet d'écriture médiat au fichier de préférences du Finder me semble pouvoir être interprété ainsi : le Finder se réfère directement à un cache de préférences et c'est ce cache de préférences qui se trouve manipulé directement par les options de cocher / décocher dans les options avancées ; c'est seulement indirectement que le fichier de préférences com.apple.finder.plist est utilisé comme référence. Il y aurait donc le processus suivant : option graphique > modification de valeur du cache > écriture différée au fichier .plist de préférences.

--------------------​

Étant donné ce mécanisme complexe, il est possible de conjecturer un état de "stase" du cache de préférences du Finder que je vient d'évoquer : une espèce de "blocage", qui fait que la valeur <true/> se trouve fixée invariablement à la clé <key>AppleShowAllExtensions</key> dans le cache actif du Finder.

Si ma conjecture avait de la pertinence, alors nettoyer le cache du Finder aurait peut-être un effet ? Pour cela, tu vas au menu "Aller" du Finder tout en pressant la touche ("alt") qui démasque le sous-menu Bibliothèque dans la liste déroulante => tu le sélectionnes et tu vois s'ouvrir dans une fenêtre l'espace du dossier de ta bibliothèque personnelle de compte > aller au dossier Caches > chercher un dossier com.apple.finder et le mettre à la corbeille (sans la vider) > re-démarrer carrément > tester si cocher / décocher la case Afficher toutes les extensions de fichiers dans les Options avancées des Préférences du Finder est honoré.

--------------------​

Si aucun effet régulier ne se produit, je te propose de passer une commande dans le «Terminal» qui appelle l'utilitaire SetFile qui est un binaire UNIX, anciennement réservée aus Xcode Developer Tools, mais qui fait désormais partie des répertoires d'utilitaires d'OS X at: /usr/bin/SetFile. Cet utilitaire est dédié à la manipulation de flags (attributs) associé aux fichiers.

Va à : Applications/Utilitaires et lance le «Terminal». Dans la fenêtre qui s'affiche, fais un copier-coller de la commande :
Bloc de code:
find ${HOME} ! \( -path ${HOME}/Library -prune \) -type f -exec SetFile -a E {} +
et ↩︎ (presse la touche "Entrée" du clavier pour activer la commande).

Cette commande appelle en entrée l'utilitaire find (trouver) sur la cible de ton répertoire de compte d'utilisateur ${HOME}, en exceptant de la recherche par ! \( -path ${HOME}/Library -prune \) le dossier de ta Bibliothèque (je trouve que c'est plus prudent), avec une option de recherche -type f (les fichiers). Le flux produit est passé par -exec à l'utilitaire SetFile, activé avec l'option -a E (établir le flag de masquage des extensions) sur tous les éléments fournis {}, le + servant de ponctuation terminale.

Tous les fichiers faisant partie de ton répertoire de compte vont se voir affecter le flag E de masquage des extensions, à part ceux relevant de ta Bibliothèque personnelle qui vont être "échappés" + une poignée (genre fichiers iTunes) pour lesquels un message d'erreur sera retourné.

Cette commande passée, est-ce que décocher la case des Options avancées du Finder : "Afficher toutes les extensions de fichiers" (si elle n'était pas déjà décochée) est bien suivi d'effet immédiat = masquage des extensions - ce exclusivement pour ce qui est des fichiers faisant partie de ton répertoire de compte ?

--------------------​
 
Dernière édition par un modérateur:
Salut moderno

Les extensions qui terminent l'intitulé de nombreux fichiers (genre : .jpg, .png, .txt, .doc...) font partie de leur définition d'objets logiques : elles servent à appeler par défaut telle application (plutôt qu'une autre) afin d'ouvrir ce fichier et de rendre son contenu représentable, graphiquement parlant.
<...>
Petite incise : il faut garder à l'esprit que cela peut être trompeur. Ce qui détermine la nature d'un fichier est son contenu, pas son extension. Son extension est là pour aider certaines applications et l'utilisateur à savoir de quoi le fichier est fait mais il faut espérer qu'elle est la bonne extension.
Ainsi, si l'envie nous prend de renommer un fichier JPEG avec l'extension .pdf, c'est tout à fait possible mais on a un déphasage : on est trompé sur la marchandise.
L'extension n'est donc pas une définition d'objet logique mais une simple indication sur la nature de l'objet (indication qui peut être erronée).

Le meilleur moyen de connaître la véritable nature d'un fichier est la commande en mode texte file, qu'on peut utiliser dans Terminal. Cette commande se trompe parfois mais est souvent pertinente.
 
Merci pour vos réponses.
Je crois que je laisse tomber ce besoin. La longue description de Macomaniac m'a renseigné et perdu...
Tant pis. C'est pas très grave.
 
@ bompi

Tu as raison : l'extension est une manière de "représenter" la nature d'un fichier à destination d'applications chargées de l'ouvrir. "Représentation" qui peut tromper sur la nature de la marchandise. J'aurais dû employer un terme plus adéquat que "définition" (choisi pour marquer le contraste avec la "présentation" graphique du Finder) : "index" peut-être...

[Je pense que je me suis senti gêné par les différents niveaux de « représentation » impliqués : le fichier (qui est déjà une représentation), l'extension (qui représente cette représentation), l'affichage graphique du Finder (qui présente les représentations précédentes). Et que j'ai tenté, par un coup de force verbal, de court-circuiter les choses en mode binaire : l'objet logique d'un côté et l'affichage graphique de l'autre. ]

--------------------​

@ moderno

En réfléchissant à ton souci, il ne m'est pas paru évident de le régler cavalièrement.

- Tu peux toujours déplacer à la corbeille le dossier de cache com.apple.finder (en démasquant ta bibliothèque personnelle de compte et en entrant dans le dossier Caches) --> après re-démarrage, tu verras bien (vider des caches est parfois bénéfique).

- Sinon, tu peux passer la commande donnée en dernier dans le «Terminal» et voir comment se présentent les fichiers à extensions dans ton espace de compte --> si manipuler la case d'option des Préférences du Finder est suivi d'effet. J'ai pensé qu'en fixant un flag de masquage des extensions sur les fichiers, ça pouvait « forcer la main » au Finder. J'ai expérimenté la commande, telle quelle, sur mon Mac et elle produit son effet sur les fichiers à extensions de mon espace de compte.

- En dernier lieu, tu peux toujours suivre la piste donnée par Jean (supprimer ton fichier de préférences com.apple.finder.plist) pour voir, après relance du Finder, s'il y a du mieux (attention : tous tes réglages vont être remis au défaut => si tu voulais les récupérer en cas d'expérience non-concluant, déplace simplement le fichier à la corbeille sans la vider et remets-le à sa place ensuite).​
 
Bonjour à tous,
Est-ce que ce genre de commande pourrait aller ?
defaults write -g AppleShowAllExtensions -bool YES
ou
defaults write -g AppleShowAllExtensions -bool NO
Merci
 
Salut JP

Quand tu appelles l'utilitaire defaults (utilitaire de paramétrage des préférences d'utilisateur pour les applications Apple) avec le verbe write (écrire une préférence), tu dois enchaîner nécessairement en premier lieu par l'énoncé du fichier de préférence d'application Apple qui constitue la cible : ici c'est le fichier com.apple.finder.plist localisé at: ~/Library/Preferences (dans le dossier des Préférences de la Bibliothèque de l'utilisateur). C'est ensuite seulement que tu énonces le couple définissant l'option retenue : clé (key) = paramètre spécifique (ici : AppleShowAllExtensions) + chaîne (string) = valeur associée (1 vs 0, TRUE vs FALSE, -bool YES vs -bool NO au choix : c'est du pareil au même au final).

Pour ce qui est, donc, de l'énoncé du fichier-cible, il n'est pas nécessaire de renseigner un chemin absolu (qui serait ici, par exemple : /Users/username/Library/Preferences/com.apple.finder.plist en modifiant comme il faut le username au nom de compte réel de l'utilisateur) ; mais il est suffisant d'énoncer l'intitulé du fichier .plist sans mention de son extension => donc : com.apple.finder.

On obtient donc une commande du type :
Bloc de code:
defaults write com.apple.finder AppleShowAllExtensions 1
(ou n'importe quelle façon d'énoncer la valeur de la chaîne associée au final) et son inverse :
Bloc de code:
defaults write com.apple.finder AppleShowAllExtensions 0


Mais cela n'est pas suffisant, car il faut considérer que le comportement du Finder ne se cale pas instantanément sur les paramètres d'écriture du fichier de préférences com.apple.finder.plist ; mais sur la mise-en-cache de ces préférences. Or une commande defaults ne manipule pas le cache du Finder, mais son fichier paradigme de préférences. Il va donc demeurer un décalage entre les valeurs du cache et celles du fichier de référence .plist => par conséquent, il faut relancer le Finder pour espérer une prise d'effet => il faut donc implémenter les commandes ci-dessus d'un ; killall Finder, ce qui donne alors au complet :
Bloc de code:
defaults write com.apple.finder AppleShowAllExtensions 1 ; killall Finder
defaults write com.apple.finder AppleShowAllExtensions 0 ; killall Finder
(le ; signifiant un "et après" la première commande => exécuter la 2è - "Finder" étant énoncé ici avec un "F" majuscule car il s'agit de l'invocation de l'application).

Mais encore (comme j'avais tenté de l'argumenter dans mon laïus abscons
361608_original.png
) - je me demande dans quelle mesure une relance du Finder suffit ou non à recaler le cache sur le fichier .plist paradigme. Par conséquent, il faudrait même aller jusqu'à se payer le luxe, après modification du .plist, de faire un :
Bloc de code:
rm -rf Library/Caches/com.apple.finder
(supprimer le dossier des bases de données de cache du Finder pour l'utilisateur) et de re-démarrer pour faire bonne mesure (ou simplement : se délogger / se re-logger) => afin de forcer le Finder à repartir, en l'absence de cache, par référence directe aux paramètres du fichier .plist (d'après lesquels un nouveau cache va être reconstitué).
 
Dernière édition par un modérateur:
Merci Macomaniac pour ta réponse rectificatrice et pleine d'enseignement.