.DS_Storeや._ファイルを削除したい

Macを使っていると「.DS_Store」やファイルの頭に「._」の付いた隠しファイルが作成されます。これらのファイルを作成しないようにすることはできないようなので、削除したり除外する方法とまとめてみました。

投稿日: カテゴリー ITよろず タグ
Macを使っていると「.DS_Store」やファイルの頭に「._」の付いた隠しファイルが作成されます。このファイルはリソースフォークといって、Mac OS特有のファイル構造でアイコンやウィンドウの形状Finder情報などを持っています。Macで不可視ファイルを見えるようにして、各種の設定などを編集したい時にこれらのファイルが邪魔だったり、Windowsとファイル共有するときにWindowsでも不可視ファイルを見えるようにしていると邪魔なときもあります。
これらのファイルを作成しないようにする設定はないようなので、それ以外の方法をまとめてみました。

.DS_Storeや._ファイルの削除

これらのファイルを必要に応じて削除します。コマンドラインを使ってまとめてさくっと削除します。
削除するコマンド例は以下です。それぞれカレントディレクトリ配下を処理しています。
それぞれファイルを見つけて、見つけたファイルをrmコマンドで削除
findコマンドには-deleteオプションがあるのでこれでも同じです。
以下のコマンドを使うとまとめて複数の削除ファイルを指定できる短い方法かと思います。
処理されたファイルを表示したい場合は-printオプションを追加してください。
なんかコマンドがだんだんと長くなってきました。そこで、シェルスクリプトを書いてエイリアスを指定すれば短いコマンドで実行できるので定義します。
以下のファンクションをホームディレクトリ配下の.bashrcに記載しましょう。
これは「delgomi」というエイリアスを定義していて、このエイリアスを叩くと「delgomi」というファンクションが実行されます。コマンド引数を$1で受け取るので、ここでは指定フォルダとなります。例えば、
とコマンドを実行すればカレントディレクトリ配下で上記のコマンドを実行してくれます。
これで「delgomi」コマンドの完成です。
スポンサーリンク

tarコマンドでリソースフォークを含まないように圧縮する

それからMacでtarコマンドを使用するとこのリソースフォークを含んでアーカイブします。Finderやターミナルでは「._」ファイルは見えないので分かりませんが、アーカイブしたファイルを他のOSで解凍すると分かります。
アーカイブにリソースフォークを以下の環境変数を指定してtarコマンドを実行します。
これで「._」ファイルは含まずにアーカイブできますが、ついでに「.DS_Store」ファイルも除外するために以下のように指定します。
複数のファイルを指定したい場合は–excludeを複数指定します。
ディレクトリを除外したい場合は、–exclude=hogeと指定するとhogeフォルダ配下を全て除外します。
これもコマンドが長いので上記と同じようにエイリアス設定しておけば楽にコマンドを実行できます。例えば、

zipコマンドでリソースフォークを含まないように圧縮する

zipコマンドを使用しても「._」ファイルのリソースフォークを含まないのですが、「.DS_Store」ファイルはある場合は含みます。「.DS_Store」ファイルを除外するには以下のオプションを指定します。
ただ、zipコマンドはディレクトリの除外指定ができません。

その他

上記以外に「.DS_Store」ファイルを作成しない方法として以下の情報がよく書かれているのですが、、私の環境では動作しているように見えませんでした。。一応情報として載せときます。。