[macOS][小ネタ] すべての.DS_Storeをコマンド一発で削除する
すべての.DS_Storeをコマンド一発で削除する
.DS_store
ファイルはFinderでのフォルダの設定(メタデータ)を記録しておくための不可視ファイルです。Spotlightのコメントやタグなどを管理しています。Finderを使ってフォルダを管理する際には必要なデータですが、例えば他の人とファイルやフォルダを共有する際などには、共有する必要のない余計なファイルとなってしまいます。
.DS_Store
ファイルは個人で作っているファイル管理などでは有用ですがアプリケーションのソースコード内などでは問答無用で不要となります。
カレントディレクトリ内の.DS_Store
ファイルをまとめて削除する機会がありましたので、コマンド一発で削除する方法を紹介したいと思います。
カレントディレクトリ内のすべての.DS_Storeを削除するコマンド
以下のコマンドを実行すると、実行したディレクトリ内のすべての.DS_Store
ファイルを削除します。
$ find . -name ".DS_Store" | xargs rm
.DS_Store
という名前のファイルを検索し、ヒットしたファイルをxargs
コマンド経由でrm
コマンドを実行し、削除しています。
試してみます。上記コマンドは| xargs rm
の部分を付けないと、単にファイル検索になります。
$ find . -name ".DS_Store" ./wp-content/.DS_Store ./wp-content/themes/.DS_Store
見つかりました。次に、消すコマンドに変えます。
$ find . -name ".DS_Store" | xargs rm
改めて検索をかけてみると、ヒットしない(つまり、無くなっている)ことが確認できます。
$ find . -name ".DS_Store"
エイリアスを作る
エイリアス(ショートカット)を作ると、上記コマンドを毎回入力する手間を省くことができます。
$ alias delds='find . -name ".DS_Store" | xargs rm'
delds
というエイリアスを作りました。これで、以下を入力するだけで実行できるようになります。
$ delds
alias
コマンドを使って作成したエイリアスコマンドは、ターミナルを再起動すると消えてしまいます。.bash_profile
などに記載し、いつでも使える状態にしておきましょう。
まとめ
コマンド的にはいたってシンプルですが、たまに使う機会が出てくるコマンドをご紹介しました。
例えばGitリポジトリで.gitignore
に入れる前に.DS_Store
ファイルをインデックスに追加してしまったときなどにご活用ください。