読者です 読者をやめる 読者になる 読者になる

DRY

Web関連の技術の事、食事/お酒の事、旅行の事など

Macでパーミッション表示時に横にでるアットマーク(@)を取り除く

【コラム】OS X ハッキング!253 Leopard解体新書(4) 〜拡張された拡張属性〜
によると、EA (Extended Attributes)と呼ばれるものらしい。

これが何なのかは他の多くの人が記事を書いているのでそちらを参照頂ければ。

とりあえずNTFSフォーマット上の.pdfファイルを開こうとした時に、「MacOSXが使用しているため開けません」みたいなメッセージが出たので、パーミション関係かと思い調べていたらこれに当たりました。

でこれを削除するにはxattrコマンドを使えば削除できるようなので、試してみると


$ /usr/bin/xattr ファイル名
com.apple.FinderInfo
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine
などと、返ってくるのでこれを一つずつ -d オプションを付けて実行してあげれば大丈夫。

$ /usr/bin/xattr -d com.apple.FinderInfo ファイル名
$ /usr/bin/xattr -d com.apple.metadata:kMDItemWhereFroms ファイル名
$ /usr/bin/xattr -d com.apple.quarantine ファイル名

で、これを一つ一つやるのはメンドクサイので、雑なperlスクリプトを。

xattr.pl


#!/usr/bin/perl -w

use strict;
use Data::Dumper;
use File::Find;

my @dir = ('./');
warn Dumper (@dir);
find (\&_find, @dir);

sub _find
{
# The file name of a full path
my $f = $File::Find::name;
my @xattr = `/usr/bin/xattr "$f"`;
if (@xattr)
{
warn Dumper ($f);
foreach my $x (@xattr)
{
$x =~ s/\n|\n\r//;
#warn Dumper ($x);
`/usr/bin/xattr -d $x "$f"`;
}
}
}

exit 1;