Macのターミナルで.DS_Storeを一括削除

.DS_Storeとは、Mac OS XのFinderが自動的に作成するファイルで、ファイルやフォルダの情報等を記憶しています。MacのFinder上では不過視ファイルとなっているので、通常は見えませんが、Windows上では普通に見えてしまいます。

見えたからといって特に問題はないのですが、以前クライアントに「.DS_Storeってファイルは何ですか?」と質問されたことがあり、それ以来納品する際には消すようにしています。

この.DS_Storeというファイルは、Finder上で消すことも不可能ではないですが、手順が非常に面倒です。Macintosh HDにFTPで接続して消すこともできますが、こちらもはっきりいって面倒です。

先日、ある案件で納品後に細かい修正が連続で入り、.DS_Storeを消す作業を3度やり直したのですが、そういう時に限ってディレクトリが大量にあり、泣きそうになりました。そこで、ターミナルでなら一括で消せるのではないかと思い、色々と調べてみました。

参考になったのは、こっけーぶろぐさんの.DS_Storeをまとめて削除するで、まさに求めているものがありました。まず、作業をわかりやすくするため、対象となるディレクトリをデスクトップに置きます。

次にアプリケーション > ユーティリティにあるターミナルを起動し、下記コマンドを入力してreturnキーを押します。なお、ターミナルにはアンドゥという概念がないので、一度消したファイルを元に戻すことはできません。バックアップをとった上で慎重に作業を行って下さい。

ターミナル

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

これだけで対象ディレクトリ内のすべての.DS_Storeが削除され、削除されたファイル名がターミナルで出力されます。なお、削除した後でFinderでそのフォルダを開いてしまうと、新たに.DS_Storeが作成されたりするので、ご注意下さい。

やはり、こういった作業ではターミナルってすごく便利だなと実感しました。本格的にコマンドを勉強してみようかなと思う今日この頃です。