Partiendo de la respuesta anterior de Daniel Beck, esta información se almacena en la bifurcación de recursos del archivo. Apple proporciona dos utilidades, llamadas "Rez" y "DeRez" con las herramientas de desarrollo, que le permiten manipular los tenedores de recursos. En particular, puede insertar una bifurcación de recursos en un archivo con Rez.
Para cambiar la asociación de un solo archivo desde la línea de comandos, primero cree un archivo del tipo correcto y cambie manualmente su asociación a la aplicación en la que desea que se abra. Esto crea la bifurcación de recursos en el archivo, si no lo hace ' No haga esto, no habrá información para copiar. Luego, extraiga la bifurcación de recursos con DeRez, de esta manera (suponiendo un archivo foo.txt, y que la aplicación que desea usar es Firefox.app).
DeRez foo.txt > foo.r
Esto creará un archivo llamado foo.r que es la bifurcación de recursos descompilados como un archivo de texto. Se verá algo como esto:
data 'usro' (0) {
$"0000 001A 2F41 7070 6C69 6361 7469 6F6E" /* ..../Application */
$"732F 4669 7265 666F 782E 6170 7000 0000" /* s/Firefox.app... */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
Puede editar esto si desea crear uno desde cero, pero debe obtener el formato exactamente correcto o no funcionará. Son solo caracteres codificados en hexadecimal que describen la ruta al paquete de aplicaciones que desea, terminados en cero.
Es posible que vea un mensaje que dice que la bifurcación de recursos está vacía y sin inicializar. Si es así, no ha cambiado la asociación por archivo en el archivo fuente, por lo que debe hacer eso y luego volver a ejecutar el comando DeRez.
Una vez que tenga esto, puede insertarlo en otro archivo de la siguiente manera (suponiendo que exista bar.txt):
Rez foo.r -a -o bar.txt
Esto actualiza bar.txt en su lugar con la bifurcación de recursos de foo.r.
Para verificar que funcionó bien, ya que ni Rez ni DeRez imprimen mensajes de error, simplemente haga esto:
DeRez bar.txt
Debería ver la misma información que antes. Después de todo eso, simplemente abra el archivo bar.txt como lo haría normalmente, y debería abrirse en la aplicación correcta, no en la predeterminada.
Para hacer un cambio por lotes, una vez que tenga el archivo .r, puede usar una expansión comodín estándar como esta:
Rez foo.r -a -o *.txt
Eso hará todos los archivos que coincidan con el comodín.
He hecho esto en 10.7, pero tengo entendido que esto también funciona en máquinas anteriores.