最近仕事が重なってお疲れ気味のたかたかです.今は大変やけどこの山を越えたら楽になるから,とスケジュール確認したら,次にゆっくりできそうなんはお盆….明るい未来をエサに自分を励ます作戦失敗 (^^; なんか別の作戦考えな.
それはさておき.
大学院の授業で猫の顔画像を主成分分析する課題を出すので,その準備をしてました.PNG画像が100枚以上あるので,tar コマンドでアーカイブしたんですが,中身を確認すると
$ tar tjf hoge.tbz catg/._blackuni3.png catg/blackuni3.png catg/._cat000.png catg/cat000.png :
こんな感じで,hogeというファイルに対応して._hogeちゅう余計なファイルもアーカイブされちゃってます.ああ,これは OS X のファイルシステムの拡張属性のせいやなあ,ってことはわかるんやけど,どうしたらなくせるか思い出せませんでした.というわけで,調べた結果をメモ.
まず,ls -l の出力に
-rw-r--r--@ 1 takataka staff 0 6 26 23:38 hoge
のように "@" がついているのが,拡張属性のついたファイルです.ls コマンドを -l@ オプション付きで実行すると,各ファイルについた拡張属性の内容も見ることができます.たとえば,Finder で「タグ」(昔は「ラベル」と言ってた,赤や青の色をつけることができるやつ)をつけると,こんなんなりました.
$ touch hoge 「空のファイルを作成」 $ ls -l@ hoge -rw-r--r-- 1 takataka staff 0 6 26 23:40 hoge 「この時点では拡張属性ついてない」 「ここで Finder で赤色のタグをつける」 $ ls -l@ hoge -rw-r--r--@ 1 takataka staff 0 6 26 23:40 hoge com.apple.FinderInfo 32 com.apple.metadata:_kMDItemUserTags 55
それから,xattr というコマンドで,拡張属性を表示したりいじったりできます(cf. man xattr).
$ xattr hoge 「ついてる拡張属性を表示」 com.apple.FinderInfo com.apple.metadata:_kMDItemUserTags $ xattr -d com.apple.FinderInfo hoge 「個々の拡張属性を削除」 $ xattr -d com.apple.metadata:_kMDItemUserTags hoge 「これら2つの属性を両方削除したら,Finder上の赤いタグが消えた」
xattr コマンドで -c オプションを使うと,すべての拡張属性をまとめて削除できます.-r を併用すると,ディレクトリを再帰的に下って指定した所以下のファイル/ディレクトリすべての拡張属性を削除できます.
というわけで,xattr -c -r 「ディレクトリ」 で ok なはずでしたが,一つ落とし穴が.Dropbox で同期してるディレクトリ内で試したら,いっこうに @ がとれへんのですな.なんでやね〜ん,ってしばらく悩んだんですが,xattr したら合点がいきました.
$ xattr hoge com.dropbox.attributes
とかなってて,これが削除でけへん(というか,たぶん削除した直後に自動で再付与されてる)のですな.Dropbox で同期してるフォルダを Finder で見た時に表示される,小さな丸いマーク(同期中やと青,同期完了してたら緑に白のチェックマーク),あれの情報を拡張属性で扱ってるようですね.拡張属性って,Apple 以外のひとも自由に付けたりできるってことかしらん.
まあそういうわけで,Dropbox フォルダの外で作業したら,拡張属性を除いたファイルアーカイブを無事作ることができました.
.
おまけ:
例によってX登校プチルートを走るたかたか ==> ん? ロープ? ==> ちゃぅぁあ,と急停止するたかたか,身じろぎもせず悠然とした構えのへびさん.大人の身長と同じかそれ以上の長さありそう.しばらく様子を伺ってみましたが,道を譲ってもらえそうにありません.自動車通れへん狭い道で,避けようもないので,あきらめて回り道しました.
ということが先週土曜にありました.記事にする機会がなかったので,無理矢理ここで (^^; って,だらだらこんな記事書いてるくらいやから,お疲れ気味とか言うても実は大したことないですな.