スポンサーリンク

MacでUSBメモリにデータ保存すると変なファイルが現れる件

USBメモリとパソコン教則本に載らないパソコンの小技
この記事は約3分で読めます。

これはRolandのサンプリングパッドSPD-Sにデータを取り込む際に見つけた異変なのですが、この現象、Macで保存したデータをWindowsで読み込んだ場合にも見かける現象でした。

MacにUSBメモリやSDカードを接続したデバイスをWindows等他のOSで見てみると、「.DS_STORE」というファイルと、保存していたファイルの頭にドットとアンダースコア( ._ )が付いたファイルが出来上がっている、というものです。

"_DS_STORE"はMacOSで使用される「リソースフォーク」という属性情報で、Finderを操作すると各フォルダに自動保存されます。

"._なにがし"ファイルは「データフォーク」と呼ばれ、そのデータのファイルタイプを記録しています。

MacのHDDがHFS+フォーマットで、対象のデバイスがFATやFATexなど別フォーマットの場合に生成されるようです。

Windows目線で見ると「desktop.ini」ファイルとか「thumb.db」ファイルとか拡張子とかを統合したもの、と認識してもらえれば分かりやすいかと。

自分だけで使っている分には「邪魔だなぁ」と思っていればいいのですが、誰かから借りたUSBメモリを返すときに.DS_STOREとかがくっ付いていくとかなり嫌がられると思います。

更に、私が今やってるRolandのサンプリングパッドSPD-Sにデータを入れる場合はこの影響がもっと深刻で、少ない容量で切り盛りしなければならないデバイスでは容量オーバーの憂い目に直結します。

実際、MacOSの拡張領域のような位置づけで始終使用しているならリソースフォークの利用意義もあるのですが、データの受け渡しに使うようなデバイスでは、むしろクロスプラットフォームな方が使い勝手が良いわけで、このファイルは邪魔にしかなりません。

それに、仮に消されてもMacOS側でファイルアクセスに影響を及ぼすことは無いとのことです。

良し。消そう。ヒャッハー。

スポンサーリンク

消し方もいろいろ

まぁ実はここで取り上げるまでもなく「.DS_STORE」で検索すると先人方の知恵をわんさかと見ることができます。

一番掲載量が多いやり方は「ターミナルを使用する」やり方。有名なところですと

find . \( -name '.DS_Store' -or -name '._*' \) -delete -print

というもの。ルートからサブディレクトリの最下層に至るまで、".DS_STORE"とドットから始まるファイルを見つけ出して(find)削除して(-delete)、結果を表示(-print)するというコマンドです。ターミナルを起動したらまずcd /volumes/SPD-Sのようにカレントディレクトリを移動してからの起動になります。

諸先人方はそれを更にエラー回避させたりエイリアスにしたりスクリプト化したりと色々な方法が紹介されています。

その中で私が秀逸だ!と思った方法はこちら

"dot clean"コマンドを使う

元からターミナルに実装されている、リソースフォークを削除するコマンドです。

dot_clean /Volumes/SPD-S

コマンドもたったこれだけ。非常に楽です。

さらに、これをMac標準機能の自動化ソフト「Automator」でアプリ化してしまう、という技も紹介されています。この方法であればターミナルを使わなくても済むので、黒い画面が怖い人でも大丈夫です。

Mac .DS_Store や ._xxx ファイルを作らない&削除する方法 - loveMac.jp
Macでファイルやフォルダを作成すると .DS_Store ._xxx (xxxはファイル名)のようなファイルが生成されます。Mac上では見えませんが、例えばNASを使っていて同じNASにWindowsからアクセスすると
dot_cleanコマンドでリソースフォークを削除してからUSBメモリを取り出す
.DS_Store等の隠しファイル Mac使っててWindowsの人とUSBメモリでファイルのやり取りをすると、USBに”.DS_Store”や”._xxx”といった隠しファイル(リソースフォーク)が自動で生成されてWi ...

ってかEjectの時にこれが標準で走るのが普通ではないのか?と思ってしまいます。そろそろ「俺が世界標準」的な仕様を組むの各社辞めてもらえないものかと切に思います。

タイトルとURLをコピーしました