「.DS_Store」に困らされる

gitレポジトリの中に作られた「.DS_Store」

macOSからSAMBAなどを使ったファイルサーバにアクセスすると,知らぬ間に「.DS_Store」というファイルが作られます。
いつでもmacから見ているなら隠されているので気にならないかもしれませんが,ドットファイルが隠しファイルにならないWindows環境ではそれが見えてしまします。

そこで,macからファイルサーバにアクセスするときに「.DS_Store」を作らせないようにするようにしました。

そもそも「.DS_Store」って?

AppleのHelpページによると:

Mac では、ラベル、タグ、その他の形式のメタデータなど、ファイルの情報を収集して、各ウインドウやそのコンテンツの表示方法が決められます。macOS Sierra 10.12 以前では、Mac はフォルダの中のファイルについてメタデータをすべて収集し、そのフォルダの「.DS_Store」ファイルと比較してから、フォルダの内容を表示していました。macOS High Sierra 10.13 以降では、この動作が若干変更されました。フォルダはアルファベット順に並べ替えられ、その中身がすぐに表示されます。その後、Finder が残りのフォルダのメタデータを収集し、比較します。macOS High Sierra 10.13 以降を調整し、ネットワーク共有でのブラウジングを高速化したり、Finder でフォルダの中身を表示する前に利用可能なメタデータをすべて収集させたりすることができます。

とのことです。
つまり,Finder.appが表示するファイル情報を予めまとめておくデータベースのようなものと言うことです。
Windowsでは関係ないじゃん・・・。
(画像フォルダにある「Thumbs.db」って?)

また,「フォルダ内の正確なファイル数をカウントしたい!」であるとか,「フォルダ内wpきれいに整理された状態にしておきたい!」とか,「Githubに"git add ."してpushしたらアップされちゃって困った」という人にとっては邪魔な存在かもしれませんね。
(Gitに関してはgitignoreで管理すれば解決できます(参考:gitignore.ioが便利!ほしい設定を検索窓に書くだけでgitignoreファイルを作ってくれる))

消してもいいの?

そもそもSD_Storeは高速化のためのファイルです。
その目的によっては必要がない場合があります。

  • ネットワーク共有でのブラウジング
    • SMBファイルサーバでは「.DS_Store」を読み取っています。ファイルブラウジングを高速化するために,macOS が SMBサーバ上の「.DS_Store」ファイルを読み取らないように設定できます。この場合,Finder で基本的な情報だけを使って,各フォルダの中身がすぐにアルファベット順で表示されるようにできます。

ファイルサーバ上のファイルをアクセスする際に,インテリジェントなFinderビューを使わなければ必要なさそうです。

以下のコマンドで削除できます。




「.DS_Store」を作らせないために

macのTerminal.appで以下のコマンドを実行すると良いです。
(Terminal.appの起動方法は,「command+Spaceキー」を押して,terminal.appと入力してエンターキーでOKです)

逆にもとに戻す場合はTrueをFalseに変えて実行すればよいです。

コマンド実行後,Finderを再起動したらOKです。
macOSのFinderの再起動方法(外部サイト参照:Inforati MacのFinderを再起動する方法)

まとめ

macOSはユーザの預かり知らぬところで気を利かせてくれています。
それは大変良いことなのですが,コンピュータのことなら全て自分の思うがままにしたいギークたちには嫌われてしまいます。
ライトなユーザからヘビーなユーザまでみんなに使われるmacPCの功罪といったところでしょうか。


参考資料