Feb 16 2014

Mac の .DS_Store や ._ から始まるファイルを自動的に消す方法

Version : OS X 10.9 (Mavericks)
trashcan

Mac で USB メモリや NAS を使っていると .DS_Store ファイルや "._" から始まるファイルができてしまい、Windows ユーザが見るとゴミファイルだらけになってしまいます。これらのファイルを簡単に消す方法を有料アプリと無料スクリプトでご紹介!


Pocket

Mac で USB メモリや NAS を使っていると .DS_Store ファイルや “._” から始まるファイルが大量にできてしまいます。Mac の Finder から見ているぶんには「不可視」ファイルなので見えないのですが、問題は Windows と共有する時です。Windows からはこれらのファイルは不可視ではないので、ゴミ同然の邪魔なファイルになります。特に “._ほげほげ” ファイルは大量にできる可能性があります。

Windows 8 1 Pro 4

Mac のファインダーが使うファイルで、フォルダーを開いた時のウィンドウの位置などを保持しています。なので Mac で使っている限りは便利っちゃ便利。
ちなみに、そもそも .DS_Store ファイルを作らないようにする設定はあちこちで紹介されています。例えばこちら。

http://dhive.jp/blog/yama/9583.html
Mac OS X で .DS_Store ファイルを作らせない方法 | ゆめとちぼーとげんじつと

 

“._”から始まるファイルは、Mac 内蔵 HDD で使われている HFS+ というフォーマットでは作られません。これは、HFS+ では ._ほげほげに入っている内容(リソースフォークといいます)を対応するファイルの内側にそっと格納しておく機能があるからです。ところが、USB メモリや NAS の場合には通常 FAT32, NTFS, ext4 などの別のフォーマットになっていて、これらのフォーマットではリソースフォークをそっと隠してしまっておく機能がないために、元のファイル名の前に “._” を付けた別ファイルを作ってそこに格納するようになっています。
でも、リソースフォークは昔の名残り、盲腸みたいなもんで使ってるアプリなんて皆無(らしい)なので消しちゃってもよいそうであります。

 

今回紹介する方法は二通りあります。

 

BlueHarvest

BlueHarvest は自動的に不要な不可視ファイルを消してくれるアプリです。お値段は $14.95(30日間の試用期間あり)。
インストールすると常駐してネットワークディスクと非 Mac ディスクの不要ファイルを消してくれます。下図の設定画面で、「入にする」を選ぶと常駐して監視します。「OS X データをクリーンアップ」を選んで削除するファイルの種類をチェックします。起動時に消すわけではなく、常駐してファイルを監視しながらできたと同時に消すようです。

BlueHarvest 9

消した結果はメニューバーから見ることができます。
スクリーンショット 2014 02 11 22 30 3

注意
BlueHarvest は MacAppStore にも若干値段が安いバージョンが置いてありますがやめたほうがよいです。こちらはすべての外付けドライブを自動でスキャンしてくれず、手動で一つ一つ指定しなくてはならないそうです。

 

 

ターミナルとか使える方は(ほぼ)同じことが無料でできます。

 

ターミナルを使って次のコマンドを打ち込むと現在のフォルダ以下を再帰的にスキャンして不要なファイルを消去します。ついでなので、Windows の Thumbs.db と Desktop.ini も消すようにしました。

対象のフォルダを指定する場合には、find の直後の . を /Volumes/share など NAS をマウントしたパスにすれば OK です。

 

毎回上のコマンドを入力するのは面倒臭いので、bash のエイリアスにしました。

~/.bashrc に下記のエイリアスを登録します。

引数をともなうエイリアスなので function にしてあります。カスファイルを消すという意味で、”delkasu” というエイリアスになっています。.bashrc を編集したら、

として bash に読み込ませます。(次回からは不要です)

使い方は、

のように、delkasu に続いて対象のフォルダを指定するだけです。

 

せっかくなので、crontab を使って定期的に自動実行されるようにしてみましょう。

まずは、delkasu.sh というシェルスクリプトを用意して、~/delkasu.sh として保存しておきます。

find の直後の /Volumes/private は僕のところの環境なので、適宜ご自身のパスに変更してください。このシェルスクリプトを cron に登録して自動実行させます。

ターミナルから、

と入力して、末尾に

を追記します。

この設定の意味は「毎週日曜日の午後5時に delkasu.sh を起動する」です。crontab の詳しい書き方は例えばこちらを参考にしてください。

 

Pocket

コメントを残す