Ces informations sont stockées dans la fourchette de ressources du fichier ( Wikipedia ). Ces fourchettes de ressources sont exposées en tant qu'attributs étendus ( Wikipedia ):
$ ls -l@ somefile.txt
-rw-r--r-- 1 danielbeck staff 0 18 Mär 19:00 somefile.txt
# setting non-default application using Finder
$ ls -l@ somefile.txt
-rw-r--r--@ 1 danielbeck staff 0 18 Mär 19:01 somefile.txt
com.apple.ResourceFork 1338
L'édition à partir de zéro est probablement assez pénible - beaucoup de données binaires:
$ xattr -p com.apple.ResourceFork somefile.txt
00 00 01 00 00 00 05 08 00 00 04 08 00 00 00 32
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 04 04 00 00 00 32 2F 55 73 65 72 73 2F 64
61 6E 69 65 6C 62 65 63 6B 2F 41 70 70 6C 69 63
61 74 69 6F 6E 73 2F 53 75 62 6C 69 6D 65 20 54
65 78 74 20 32 2E 61 70 70 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 01 00 00 00 05 08
00 00 04 08 00 00 00 32 0C 00 00 00 C0 05 00 00
00 1C 00 32 00 00 75 73 72 6F 00 00 00 0A 00 00
FF FF 00 00 00 00 19 00 00 00
Mais vous pouvez traiter ces fourchettes de ressources comme des fichiers. Par exemple:
$ open somefile.txt # opens in Sublime 2
$ cp somefile.txt/..namedfork/rsrc openInSublime2rsrc
$ open otherfile.txt # opens in TextEdit
$ cp openInSublime2rsrc otherfile.txt/..namedfork/rsrc
$ open otherfile.txt # opens in Sublime 2
/..namedfork/rsrc
est la façon dont la fourchette de ressources est exposée aux applications POSIX (c'est-à-dire probablement tout ce que vous faites dans Terminal).
Il vous suffit donc de créer un fichier "modèle" à partir d'une fourchette de ressources existante (dans cet exemple openInSublime2rsrc
), et vous pouvez ensuite le copier dans vos autres fichiers.
somefile.txt/..namedfork/rsrc
place.somefile.txt/rsrc
a été déconseillé il y a un certain temps.Reprenant la réponse de Daniel Beck ci-dessus, ces informations sont en effet stockées dans la fourchette de ressources du fichier. Apple fournit deux utilitaires, appelés "Rez" et "DeRez" avec les outils de développement, qui vous permettent de manipuler les fourchettes de ressources. En particulier, vous pouvez pousser une fourchette de ressources dans un fichier avec Rez.
Pour modifier l'association d'un seul fichier à partir de la ligne de commande, créez d'abord un fichier du bon type et modifiez manuellement son association à l'application dans laquelle vous souhaitez qu'il s'ouvre. Cela crée la fourchette de ressources dans le fichier - si vous ne le faites pas ' Pour ce faire, il n'y aura aucune information à copier. Ensuite, retirez la fourchette de ressources avec DeRez, comme ceci (en supposant un fichier foo.txt et que l'application que vous souhaitez utiliser est Firefox.app).
Cela va créer un fichier appelé foo.r qui est la fourche de ressource décompilée en tant que fichier texte. Cela ressemblera à ceci:
Vous pouvez le modifier si vous souhaitez en créer un à partir de zéro, mais vous devez obtenir le format exact ou cela ne fonctionnera pas. Ce ne sont que des caractères hexadécimaux décrivant le chemin d'accès au bundle d'application que vous souhaitez, terminé par un zéro.
Vous pouvez voir un message indiquant que la fourchette de ressources est vide et non initialisée. Si tel est le cas, vous n'avez pas modifié l'association par fichier sur le fichier source, vous devez donc procéder, puis réexécuter la commande DeRez.
Une fois que vous avez cela, vous pouvez le pousser dans un autre fichier comme suit (en supposant que bar.txt existe):
Cela met à jour bar.txt en place avec la fourchette de ressources de foo.r.
Pour vérifier que cela a bien fonctionné, puisque ni Rez ni DeRez n'impriment de messages d'erreur, faites simplement ceci:
Vous devriez voir les mêmes informations qu'auparavant. Après tout cela, ouvrez simplement le fichier bar.txt comme vous le feriez normalement, et il devrait s'ouvrir dans la bonne application, pas celle par défaut.
Pour effectuer un changement de lot, une fois que vous avez le fichier .r, vous pouvez utiliser une extension générique standard comme celle-ci:
Cela fera tous les fichiers qui correspondent au caractère générique.
J'ai fait cela sur 10.7, mais je crois comprendre que cela fonctionne aussi sur les machines antérieures.
la source
..namedfork/rsrc
ne fasse pas non plus, n'est-ce pas? Vous échangez nécessitant des connaissances sur les (semi) internes pour des connaissances sur des outils spécifiques - je ne suis pas convaincu que ce soit mieux.Je l'ai fait en utilisant xattr (cela fonctionne parfaitement sur le volume APFS)
Voir ce sujet si vous en avez besoin de plus
la source
Vous dites que vous voulez "changer par lots" l'application associée à un (sous-) ensemble de fichiers donné, d'un type donné. sous-ensemble, car vous ne voulez pas remplacer toutes les instances de ce type de fichier par cette nouvelle application.
Cependant, il n'y a aucun moyen facile de le faire. La façon dont LaunchServices découvre quelle application doit être invitée à ouvrir un fichier est un processus en plusieurs étapes et dépend de paramètres avec des étendues différentes (utilisateur, système, etc.).
Mais - vous pouvez utiliser
open
sur la ligne de commande et lui dire d'utiliser une application spécifique cette fois. Cela ne changerait aucune association, mais cela permettrait d'atteindre ce que vous dites vouloir, à savoir ouvrir un ensemble de fichiers dans une application spécifique:open -a <appbundle> <somefile> <anotherfile>
comme
et, en s'éloignant totalement de la ligne de commande: jetez un œil à cet utilitaire: http://michelf.com/software/magic-launch/
la source
open -a TextWrangler *
serait encore plus rapide.