Mac のファイルをコマンドラインからみると権限のところに@が付いているのがある。これはファイルの拡張属性でMacだけの話しだ。付いていても無くてもほとんど関係ない。アプリでそのファイルを読むときにあったらいい位の意味らしい。強いて取り除く意味があるのか、よくわからない。この @ のついたファイルをWindowsに渡しても、読めないから捨てちゃうことになる。
@ の付いたファイルをWindowsに持っていいくと、例えば test.txt というファイルには .test.txt というもう一つのファイルも表示される。.test.txtはappleの属性でWindowsにとって意味がないものだ。このWindowsにコピーされたtest.txtにはAppleの属性がついていないから、Windowsにコピーされたファイルを再びMacにもってくるとappleの属性はなくなっているから、ターミナルで見ると @ はなくなっている。
例えば
-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
のようなファイルだ。このファイルはエディタで作成したファイルだ。このファイルにくっついている属性を見るには ls -l@ [ファイル名] である。
$ ls -l@ test.txt
-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
com.apple.FinderInfo 32
com.apple.ResourceFork 1338
com.apple.TextEncoding 15
com.apple.macl 72
4つの属性がくっついている。これらを除くには
xattr -d [削除したい属性] [ファイル名]
である
$ xattr -d com.apple.FinderInfo test.txt
$ xattr -d com.apple.ResourceFork test.txt
$ xattr -d com.apple.TextEncoding test.txt
$ xattr -d com.apple.macl test.txt
しかし xattr -d com.apple.macl が有効ではなく
-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
となって@が残ったままだ。com.apple.maclという属性はどうやら取り除けないらしいが、何のためかAppleのdocument にもない?らしい。Catalina から?他の属性だけだったら取り除くことができて @ はなくなる。
directory 指定の場合は
xattr -cr
らしい。