by shigemk2

当面は技術的なことしか書かない

ls したときパーミッションにあるアットマーク@について(Mountain Lion)

基本ここから。
OS X ハッキング! (253) Leopard解体新書(4) ~拡張された拡張属性~ | マイナビニュース
Leopard前提で話を進めているけど、こちらの環境はMountain Lionです。

そのアットマークの意味

EAは、メタデータと総称されるファイル付加情報の1つ。ファイル名とパーミッション、ファイル作成日を除くさまざまな情報が記録され、Spotlightによる検索などに用いられる。そもそもHFS Plusは、データフォークとリソースフォーク以外のフォークを確保できるよう設計されていたが、実際には利用されてこなかった。EAが実装されたことにより、ユーザやアプリケーションが自由に、ファイルの本質とは直接関係のない修飾的な情報を保存できるようになったのだ。

まあ要するにメタデータの一種なのね。

EAの有無

EAの有無は、「-l」オプションを有効にして詳細情報付きで表示したとき、パーミッションフィールドに「@」があるかどうかで確認できる。

でもさ、MacOSX以外の環境だと全くもって不要な情報ですよ。
だから削除する方法を模索したい。

EAを削除する

shige@shigemk2 ~% ls -alF xattr hoge.el 
-rw-r--r--@   1 shige   staff      82116  4 17  2012 hoge.el
shige@shigemk2 ~% xattr hoge.el 
com.apple.metadata:kMDItemWhereFroms
shige@shigemk2 ~% xattr -d com.apple.metadata:kMDItemWhereFroms hoge.el 
shige@shigemk2 ~% ls -alF hoge.el 
-rw-r--r--  1 shige  staff  82116  4 17  2012 hoge.el

xattr でどんなメタデータがあるか確認してから、
xattr -d メタデータメタデータを削除、という流れになると思う。