Mac の ls -l でアットマーク @ が付いているファイルがあった : Extended Attributes と xattr コマンド

Mac で ls -l してファイルを見ていた時に、何やらパーミッションの後ろにアットマーク記号 @ が付いたファイルがあることに気が付いた。

$ ls -l
-rw-------  1 Neo  staff  17809  1  9 15:54 my-file-1.md
-rw-------@ 1 Neo  staff  25246  1 16 10:14 my-file-2.md

調べてみると、コレは Extended Attributes (EA) 拡張ファイル属性というモノらしい。メタ情報の一つだそうだ。

どんなメタ情報が付いているのかは ls -l@ と叩くと確認できる。

 ls -l@
-rw-------  1 Neo  staff  17809  1  9 15:54 my-file-1.md
-rw-------@ 1 Neo  staff  25246  1 16 10:14 my-file-2.md
  com.apple.lastuseddate#PS    16

さらに、xattr コマンドでファイルを指定しても取得できる。

$ xattr my-file-2.md
com.apple.lastuseddate#PS

今回のファイルの場合は、com.apple.lastuseddate#PS とかいう属性が付いていた。

とりあえず大したメタ情報ではないと分かったが、一応消し方も。$ xattr -d 【削除したい属性名】 【ファイル名】 と叩けば消せる。

# 消してみる
$ xattr -d com.apple.lastuseddate#PS my-file-2.md

# 「@」マークが消えた。
$ ls -l@
-rw-------  1 Neo  staff  17809  1  9 15:54 my-file-1.md
-rw-------  1 Neo  staff  25246  1 16 10:14 my-file-2.md

謎だけど特に気にしないでおこう。気になったら xattr -d で消しちゃおう。