LoginSignup
0
3

More than 1 year has passed since last update.

【Mac】.DS_Storeの一括削除コマンドの作成

Last updated at Posted at 2022-11-20

はじめに

MacのFinderにてフォルダの操作を行なっていると、
自動で「.DS_Store」が作成されるが開発時に意外と邪魔になる。。。

リポジトリの管理的には基本的にgitignoreしておけばよいが、
ディレクトごとファイルのアップロードや同期などを行う時などには、予期せず.DS_Storeが紛れてしまったりすることがあったりする

サクッと一括削除しておきたいので、シェルに削除コマンドを作成しておく

.DS_Storeとは

Macでフォルダやファイルの操作を行なった際に、自動生成されるメタデータを格納したもの

Finderでフォルダをパカパカ開いた際に状態を保持してくれてたりするやつ(多分)
スクリーンショット 2022-11-20 13.07.08.png

Finder上で隠しファイルを表示するようにしていても、Mac上では「.DS_Store」は表示されずに目視できないので、フォルダごとアップロードなどした際に忘れていて.DS_Storeが紛れてしまうことがあり厄介

動作環境

  • OS:macOS Monterey
  • shell:zsh

.DS_Storeを作らなくする

% defaults write com.apple.desktopservices DSDontWriteNetworkStores true

これで作成されないようになるらしいが、自分の環境だと変化なし。。。

.DS_Store一括削除コマンド

カレントディレクトリ以下の.DS_Store一覧表示

% find . -name ".DS_Store" -ls

カレントディレクトリ以下の.DS_Storeを一括削除

% find . -name ".DS_Store" -ls -delete

-lsで一応何が削除されたのか一覧も表示)

コマンドのエイリアスを登録

毎回上記コマンドを入力したりコピペするのも面倒なので、コマンドをエイリアスで登録しておく

.zshrcを編集

% vi ~/.zshrc

.zshrcにエイリアスを追記する

.zshrc
・
・
・
# 以下追記
alias dsfind='find . -name ".DS_Store" -ls'
alias dsdel='find . -name ".DS_Store" -ls -delete'

(エイリアス名はお好みで)

.zshrc再読み込み

% source ~/.zshrc

コマンド実行

シェルにてdsfinddsdelのコマンドを叩けば、「.DS_Store」の一覧表示と一括削除がサクッと可能

# カレントディレクトリ以下の.DS_Store一覧表示
% dsfind

# カレントディレクトリ以下の.DS_Storeを一括削除
% dsdel

さいごに

基本的にgitignoreに記載しておいたり、
ファイルのアップロードや同期系のコマンドで–exclude系のオプションがある場合は、こちらにも記述しておくのが安全ですね(めんどくさい:confounded:

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3