Mengambil dari jawaban Daniel Beck di atas, informasi ini memang disimpan dalam garpu sumber daya file. Apple menyediakan dua utilitas, yang disebut "Rez" dan "DeRez" dengan alat pengembang, yang memungkinkan Anda untuk memanipulasi garpu sumber daya. Secara khusus, Anda dapat mendorong garpu sumber daya ke file dengan Rez.
Untuk mengubah kaitan satu file dari baris perintah, pertama buat file dengan tipe yang tepat, dan secara manual ubah kaitannya dengan aplikasi yang Anda inginkan. Ini menciptakan garpu sumber daya dalam file - jika Anda tidak mau t melakukan ini, tidak akan ada informasi untuk disalin. Kemudian, tarik garpu sumber daya dengan DeRez, seperti ini (dengan asumsi file foo.txt, dan aplikasi yang ingin Anda gunakan adalah Firefox.app).
DeRez foo.txt > foo.r
Ini akan membuat file bernama foo.r yang merupakan fork resource dekompilasi sebagai file teks. Akan terlihat seperti ini:
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" /* ................ */
Anda dapat mengedit ini jika Anda ingin membuat satu dari awal, tetapi Anda harus mendapatkan format persis benar atau tidak akan bekerja. Itu hanya karakter hex-encoded yang menggambarkan jalur ke bundel aplikasi yang Anda inginkan, diakhiri dengan nol.
Anda mungkin melihat pesan yang mengatakan bahwa garpu sumber daya kosong dan belum diinisialisasi. Jika demikian, Anda belum mengubah asosiasi per-file pada file sumber, jadi Anda harus melakukannya, lalu jalankan kembali perintah DeRez.
Setelah Anda memiliki ini, Anda dapat mendorong ini ke file lain sebagai berikut (dengan asumsi bar.txt ada):
Rez foo.r -a -o bar.txt
Bar.txt ini diperbarui di tempat dengan garpu sumber daya dari foo.r.
Untuk memeriksanya berfungsi dengan baik, karena baik Rez maupun DeRez tidak mencetak pesan kesalahan, lakukan saja ini:
DeRez bar.txt
Anda harus melihat informasi yang sama seperti sebelumnya. Setelah semua itu, cukup buka file bar.txt seperti biasa, dan itu akan terbuka di aplikasi yang benar, bukan yang default.
Untuk melakukan perubahan batch, setelah Anda memiliki file .r, maka Anda dapat menggunakan ekspansi wildcard standar seperti ini:
Rez foo.r -a -o *.txt
Itu akan melakukan semua file yang cocok dengan wildcard.
Saya telah melakukan ini pada 10.7, tetapi ini adalah pemahaman saya bahwa ini bekerja pada mesin sebelumnya juga.