北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

パーミッションの横に着く@の意味

やはり人力検索は頼りになりますね!(駄目

-rw-r--r--@ 1 hiratara  hiratara  177979  7 30 12:20 HOGEHOGE.zip

OS Xで、こんな風にパーミッションの横に@*1がつくファイルをtarで固めると、

% tar cvf hoge.tar HOGEHOGE.zip
./._HOGEHOGE.zip
HOGEHOGE.zip
% tar xvf hoge.tar
./._HOGEHOGE.zip
HOGEHOGE.zip
% ls -la ./._HOGEHOGE.zip
ls: ./._HOGEHOGE.zip: No such file or directory

なんておかしなことになって困っていたら、id:usuihiro1978が調べてくれました。

詳しくは、OS X ハッキング!をご覧下さい(それだけ!?


一応書いておくと、まず、この@はExtended Attributeってやつです。

で、ls -l@でこの@の正体が見れます。*2

% ls -l@ HOGEHOGE.zip
-rw-r--r--@ 1 hosoma  hosoma  177979  7 30 12:20 HOGEHOGE.zip
        com.apple.metadata:kMDItemWhereFroms       206 
        com.apple.quarantine        70 

さらに、._で始まるファイルはApple Doubleと言われる物だそうです。Extended Attributeの部分は他のファイルシステムだと対応できないから、切り離してくれるんですと。

ってことはこのEAさえ消せれば問題解決ですね。これはxattrコマンドで消せます。

$ xattr -d com.apple.metadata:kMDItemWhereFroms HOGEHOGE.zip
$ xattr -d com.apple.quarantine HOGEHOGE.zip

これで問題解決! すっきりしました。

*1:atmark、アットマーク

*2:com.apple.quarantine は外から入って来たファイルを「隔離」するためにつける目印で、こいつは展開されたファイルにもついて回る曲者です。