.DS_Storeの仕組みと削除&作成しないよう設定する方法

MacのFinderで不可視のフォルダやファイルを表示した状態にすると「.DS_Store」というファイルがあることが分かります。

この.DS_Storeはフォルダを開くと自動で作成されてしまい、フォルダ内の正確なファイル数が分からなくなるなど邪魔になってしまうことが多々あるので一部ユーザーからはとにかく不評です。

また、非表示にしていてもWindowsと共有しているドライブなどでは見えるようになってしまうので気になってしまう方は多いようです。そんな謎のファイル.DS_Storeについて詳しくご説明します。

.DS_Storeとは?

アイコンの位置や表示設定などのフォルダ表示設定に関するメタデータを記録するための隠しファイルです。Finder上でもリモートシステム上でもアクセスするすべてのフォルダに.DS_Storeファイルが作成されています。

.DS_Storeは削除して良い?

Finderでフォルダやアイコンの表示がおかしくなっている場合、とりあえずMacを再起動すると正常に戻ることが多いのですが、.DS_Storeを削除した方がいい場合もあります。

これは.DS_Storeにフォルダの設定を記録する際に失敗してファイルの内容が壊れていることが原因です。

また、.DS_StoreはMacからWindowsへファイルを渡したりする場合には不要となるので、.DS_Storeは削除しておきたいところです。しかし.DS_Storeを削除するとフォルダ内のアイコン表示位置がリセットされたり、spotlightのコメントが削除されたりする点はご留意ください。

すべてのフォルダの.DS_Storeを検索して削除する方法

この方法はすべてのフォルダに関する設定に影響を与えるので必ず作業前にバックアップは取っておきましょう。また、他のボリュームについてはアンマウントしておきます。そして「起動ディスク」→「アプリケーション」→「ユーティリティ」と移動して「ターミナル」を起動します。ターミナルに

sudo find / -name ".DS_Store" -delete

と入力すると.DS_Storeが削除されます。password?と表示されたらmacログイン時のパスワードを入力してください。それから全ての処理が完了したら次のコマンドでFinderを再起動しましょう。

Killall Finder

個別のフォルダの.DS_Storeを削除する方法

ちなみに個別のフォルダの設定のみ削除する場合はターミナルで

find Desktop/対象のディレクトリ -name ".DS_Store" -print  -exec rm {} ";"

というように入力してからFinderを再起動してください。

.DS_Storeを作成しないようにするには

何かとユーザーを悩ませがちな.DS_Storeを作成させないという手段もあります。ネットワークドライブや外付けのドライブに対して作成しないようにするアプリやコマンドを使用するのです。.DS_Storeの機能は必要ないので余計なファイルを作りたくないという方は試してみてはいかがでしょうか。

やり方としては、ターミナルから以下のコマンドを入力してください。

defaults write com.apple.desktopservices DSDontWriteNetworkStores True

また、コマンド実行後はFinderを再起動させてください。

おすすめの.DS_Store対策ツール

MacForkCleanerはアイコンにフォルダをドラッグするとフォルダ内の.DS_Storeファイルを削除するツールです。ドラッグしたフォルダに含まれている全てのサブフォルダ内も整理してくれるので、分かりやすく非常に使い勝手の良いツールだと思います。

AsepsisはそもそもTotalFinderというFinderをタブ化してくれるアプリの機能の一つでしたが、現在はフリーで配布されています。このアプリは.DS_Storeを「/usr/local/.dscage」にまとめて作成し、Finderがこの場所を参照するようにしてくれるのであちこちに余計なファイルが作成されているという悩みは解消されます。また.DS_Storeの機能もそのまま残っているという点も魅力ではないでしょうか。

まとめ

.DS_Storeはフォルダ内の表示設定を記録して置いてくれる便利な機能です。あまりに頻繁に作られていて作業の邪魔になったり不具合が発生していたりする場合は.DS_Storeの使用をやめてしまうのも一つの方法だと思います。とはいえ、システムファイルを触る場合は万が一の場合に備えて必ずバックアップを取っておくようにしましょう。