マッコスengineerなら1度は見たことあるであろうlsの結果に出力される "@"について。
今まで見て見ぬ振りをしてきたが、気になったので調べてみた。
OS X ハッキング! (253) Leopard解体新書(4) ~拡張された拡張属性~ | マイナビニュース
答えはここに書いてあるのですが
EA (Extended Attributes) と呼ばれるメタ情報であり、
EXIFなどのファイルに埋め込まれたものとは別。
EAはTigerで実装されたHFS Plus独自の機構であり、 ファイル本体とは別に存在するため、HFS Plus以外のファイルシステムへ コピーすると原則して失われる(通常は「AppleDouble」の機能により、 EAは「._元のファイル名」という形式の別ファイルに書き出されるが)。
おお、なるほど「._元のファイル名」これいつも気になってました。
そういうことか。
EAを参照する
これも元記事に載ってますが、xattr / ls -al@ で参照可能。
$ xattr ~/Desktop/goofys_finder.png com.apple.metadata:kMDItemIsScreenCapture com.apple.metadata:kMDItemScreenCaptureGlobalRect com.apple.metadata:kMDItemScreenCaptureType $ ls -l@ ~/Desktop/goofys_finder.png -rw-r--r--@ 1 trsw staff 16266 Feb 3 22:04 /Users/trsw/Desktop/goofys_finder.png com.apple.metadata:kMDItemIsScreenCapture 42 com.apple.metadata:kMDItemScreenCaptureGlobalRect 86 com.apple.metadata:kMDItemScreenCaptureType 51 com.apple.quarantine 22
EAを削除する
-d 付オプションで削除が可能ですが、一括削除機能がなかったのでshellのfunctionをつくってみました。
remove_xattr() { xattr $1 | xargs -Iattr xattr -d attr $1 }
$ remove_xattr some_file