« shell-mode を outline-minor-mode として使う | トップページ | Kindle DXでできること »

2009年5月23日 (土)

Mac OSの ls -l に現れる "@" の謎

Mac OSでは、ls -l に謎の "@" が現れることがあって気持ち悪かった:

% ls -l '/Users/takesi/Movies/opening flip.mov'
-rw-r--r--@ 1 takesi  takesi  445493 Mar 20 06:06 /Users/takesi/Movies/opening flip.mov

man ls しても Appleは教えてくれない。 他にやることもあって忙しかったので、さっそく調べてみた。

結論から書くと、これは Exntended File Attributesの存在をあらわしてるのだった。 どんな属性がついているかは、-@というこれまた 隠しオプションで見ることができる:

% ls -l@ '/Users/takesi/Movies/opening flip.mov'
-rw-r--r--@ 1 takesi  takesi  445493 Mar 20 06:06 /Users/takesi/Movies/opening flip.mov
	com.apple.ResourceFork	   286 

ここら辺のことは、Darwinの file_cmdsから lsの ソースを見て発見しました。 printlong 関数あたりを見てみると linkxattr(2) を呼び出してるのが見えます。

ただ、Extended file attributesだということがわかっても、 それがどういう風に使われるのかまったくよく分かってないんですが。 少なくとも HFS+ の拡張機能だと分かっただけで、糞Jobs がつけた はんかくさい機能かと安心することができます。

と、ここまで書いてさっさと忘れて仕事に戻ります。おしまい。

|

« shell-mode を outline-minor-mode として使う | トップページ | Kindle DXでできること »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Mac OSの ls -l に現れる "@" の謎:

« shell-mode を outline-minor-mode として使う | トップページ | Kindle DXでできること »