Chọn từ câu trả lời của Daniel Beck ở trên, thông tin này thực sự được lưu trữ trong tài nguyên của tập tin. Apple cung cấp hai tiện ích, được gọi là "Rez" và "DeRez" với các công cụ dành cho nhà phát triển, cho phép bạn thao tác các nhánh tài nguyên. Cụ thể, bạn có thể đẩy một ngã ba tài nguyên vào một tệp với Rez.
Để thay đổi liên kết của một tệp từ dòng lệnh, trước tiên hãy tạo một tệp đúng loại và thay đổi thủ công liên kết của nó với ứng dụng bạn muốn mở. Điều này tạo ra ngã ba tài nguyên trong tệp - nếu bạn không ' Làm điều này, sẽ không có thông tin để sao chép. Sau đó, rút ra ngã ba tài nguyên với DeRez, như thế này (giả sử một tệp foo.txt và ứng dụng bạn muốn sử dụng là Firefox.app).
DeRez foo.txt > foo.r
Điều này sẽ tạo ra một tệp có tên foo.r là ngã ba tài nguyên được dịch ngược dưới dạng tệp văn bản. Nó sẽ trông giống như thế này:
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" /* ................ */
Bạn có thể chỉnh sửa điều này nếu bạn muốn tạo một cái từ đầu, nhưng bạn phải có định dạng chính xác hoặc nó sẽ không hoạt động. Đó chỉ là các ký tự được mã hóa bằng hex mô tả đường dẫn đến gói ứng dụng bạn muốn, kết thúc bằng số không.
Bạn có thể thấy một thông báo nói rằng ngã ba tài nguyên trống và chưa được khởi tạo. Nếu vậy, bạn đã không thay đổi liên kết trên mỗi tệp trên tệp nguồn, vì vậy bạn cần phải thực hiện điều đó, sau đó chạy lại lệnh DeRez.
Khi bạn đã có thứ này, bạn có thể đẩy tệp này vào một tệp khác như sau (giả sử bar.txt tồn tại):
Rez foo.r -a -o bar.txt
Điều này cập nhật bar.txt tại chỗ với ngã ba tài nguyên từ foo.r.
Để kiểm tra nó hoạt động tốt, vì cả Rez và DeRez đều không in các thông báo lỗi, chỉ cần làm điều này:
DeRez bar.txt
Bạn sẽ thấy thông tin tương tự như trước đây. Sau tất cả, chỉ cần mở tệp bar.txt như bình thường và nó sẽ mở trong ứng dụng chính xác, không phải tệp mặc định.
Để thực hiện thay đổi hàng loạt, khi bạn có tệp .r, thì bạn có thể sử dụng bản mở rộng ký tự đại diện tiêu chuẩn như sau:
Rez foo.r -a -o *.txt
Điều đó sẽ làm tất cả các tệp phù hợp với ký tự đại diện.
Tôi đã thực hiện điều này vào ngày 10.7, nhưng tôi hiểu rằng nó cũng hoạt động trên các máy trước đó.