« Fedora 13で自動ログインする方法 | トップページ | テキストエディットでShift JIS以外のテキストをダブルクリックで開けるようにする »

2010年8月14日 (土)

xattrコマンドでクリエータタイプとファイルタイプを変更する

xattr コマンドで -w によって com.apple.FinderInfo の内容を変更すればクリエータタイプとファイルタイプを変更できそうだと考えたが、いかんせん xattr コマンドには詳細なマニュアル(man)が用意されておらず(Max OS X のコマンド群は意外なほどマニュアルが整備されているのだが xattr は例外のようだ)、-h で参照したヘルプ程度ではどのようにして書き込めばよいかわからなかった。

試行錯誤したところ、com.apple.FinderInfo に書き込むには、「書き込む内容は16進法でなければならない(つまり「-x」が必要)」ことと「必ず32バイト単位でなければならない」ことがわかった。

以下に「hogehoge.txt」というファイルのファイルタイプを『TEXT』、クリエータタイプを『cEd1(CotEditorのクリエータ)』に変更する例を掲げておく。

『5445...』で始まる文字列のうち、最初の『54455854』が『TEXT』、次の『63456431』が『cEd1』の16進法表記である。残りは0が48文字並んでいる(計64文字=32バイト)。

注意:上に掲げた例では拡張子表示の有無やラベルなどの他の Finder 情報がすべて消えてしまう。それらを残したい場合どのようにすればよいのかはまだ詳しくはわからないが、拡張子非表示のファイルやラベルを付けたファイルをxattr -l コマンドで表示してみたところ、10バイト目で指定しているようだ。

なお、16進法は「アスキーコード表」を参考にさせていただいた。

(2011年8月21日更新)

« Fedora 13で自動ログインする方法 | トップページ | テキストエディットでShift JIS以外のテキストをダブルクリックで開けるようにする »