序章
この記事の内容を実行してしまったばっかりに、 Mac PCのクリーンアップ(初期化)を余儀なくされても、 一切保証できるものではありませんので、あしからず。
先日、.DS_Store
ファイルが無性に邪魔に感じて、
Mac内にある同ファイルすべてを消してみたのだが、
コマンド実行後から、OSの不具合続出で、
保存データの参照関係もメチャメチャとなり、
あえなく、PCを初期化した。。。
そもそも、.DS_Store
のファイルは何なのか?色々と調べると、MacOSで作成されるメタデータを保存する隠しファイルであるらしい。
初期設定では、全てのフォルダ内に、.DS_Storeが隠しファイルで作成される。
どのフォルダにあるかによって役割が違うのだろうが、どうも、MacOS内でのデータ参照とかの大変重要な役割を担っているらしい。
当時を思えば、 「天下のAppleさんのOSで、そんな大事な機能を、ローカルのファイルに完全に任せてることはなく、 そんなファイルが無くても、システム的に勝手に補完されるんじゃない、、、」かと 分かった気になってたのが良くなかったのかもしれない。
Macでやってはいけないコマンド実行
まずは、ターミナル起動を起動して、「DS_Store」がどれくらい存在するかを見てみる*1。
# DS_Storeのファイルパスを text.txt を保存 du -a | grep "DS_Store" > text.txt #結構、時間かかる! #行数をカウント wc -l text.txt #自分の環境では、「数千個くらい」あった!?
実は、これだけファイル数が多いと、一度に削除することはできない。
そのため、小分けにして、ファイル削除を実行する必要がある。
そこで、行き着いたのが、以下のコマンド実行である。 これだと1回の実行で、1000個ずつ、DS_Storeが消えていく*2。
du -a | grep "DS_Store" | head -n 1000 | xargs rm -rf
ここでのポイントは、rm -rf
に引数を渡す際にhead
からの出力を直接受け取れないので、
xargs
を使用して、head
の出力を引数として受け取れるようにする。
ただ、このコマンドは実行しないことを強くお勧めします。
良い子は真似しないで。