[Mac]「._」ファイル作成無効化

TIPS
mac マック

「._*」ファイルを作成しないことでMacのOS自体に不具合や問題が起きることは100%ありません。 安心して無効化して大丈夫です。

なぜ不具合が起きないのか、そして無効化した場合に「何が失われるのか」を分かりやすく解説します。

1. なぜMac本体には影響がないのか?

実は、Macの内部(内蔵SSD)で普通に生活している分には、そもそも ._ というファイルは存在していません。

Macの標準的なフォーマット(APFS)は優秀なので、ファイルの「中身(データ)」と「オマケ情報(メタデータ)」を、1つのファイルの中に綺麗に格納しています。

._ ファイル(AppleDoubleファイルと呼ばれるもの)が出現するのは、「Mac独自のオマケ情報を理解できない外部の環境(Linuxサーバーや、Windows向けのUSBメモリなど)」にファイルを転送しようとした瞬間だけです。Macが気を利かせて「相手が読めないといけないから、オマケ情報だけ別ファイルに分けて一緒に送ってあげよう」と自動生成しているだけなので、出力を止めてもMac本体のシステムが狂うことはありません。

2. 無効化することでのデメリット

_ ファイルの生成を止めると、転送先のサーバー側において、ファイルが持っていた「Mac独自の見た目・管理用のオマケ情報」が消失します。具体的には以下の通りです。

  • Finderの「カラータグ」が消えるMac上でファイルに赤や青などの「タグ」をつけて管理していた場合、サーバー側(およびそれを別Macでダウンロードした際)にタグ情報が残りません。
  • カスタムアイコンが消えるフォルダやファイルのアイコンを独自の画像に変更していた場合、それが通常のフォルダアイコンに戻ります。
  • フォントや一部の特殊な位置情報(アプリ依存)古いMac用ソフトなどで、リソースフォークと呼ばれる場所に特殊なデータを保存する仕様のファイルの場合、その情報がカットされます。(※通常のテキスト、Pythonコード、PDF、画像、音楽などのデータ本体が壊れることは絶対にありません)
  • Webからダウンロードした直後の「警告ビット」が消えるインターネットから拾ってきたファイルを転送した際、「これはインターネットからダウンロードされたファイルですが開きますか?」というMac独自のセキュリティ警告を出すための情報が消えます。

3. サーバー運用・プログラミングにおいては「むしろメリットしかない」

失われるのは上記のような「MacのFinderで見たとき便利なお役立ち情報」だけです。

そのため、プログラムのソースコード(Python, HTML, JS)やJSONデータ、各種アセットファイルをLinuxサーバーにデプロイする文脈においては、._ ファイルの抑制はデメリットどころか、メリットしかありません。

  • サーバー側に「謎のゴミファイル」が大量発生してディレクトリが汚れるのを防げる
  • Gitの管理対象外(.gitignore)の手間が減る
  • rsyncの転送量やファイル数が減り、デプロイがスッキリ高速化する

「._」無効化手順

Macで ._(ドットアンダーバー)ファイルの自動生成を止めるための設定手順です。

毎回コマンドの先頭に付けるのが面倒な場合の「ターミナルでの恒久的な無効化(おすすめ)」と、Finderからサーバーに繋いだときのゴミを止める「システム全体での無効化」の2つの手順をステップ・バイ・ステップで解説します。

手順1:ターミナル全体で恒久的に無効化する(推奨)

Macの標準ターミナル(zsh)の設定ファイルに環境変数を1行追加することで、今後実行するすべての rsynctar(圧縮)コマンドにおいて、自動的に ._ ファイルの生成・転送が完全にブロックされます。

Step 1:ターミナルを開く

Macの「アプリケーション」>「ユーティリティ」から ターミナル.app を起動します。

Step 2:設定ファイル(.zshrc)に無効化コマンドを追記する

以下のコマンドをそのままコピー&ペーストして Enter を押します。

echo 'export COPYFILE_DISABLE=1' >> ~/.zshrc

💡 これにより、ログイン時に自動で「メタデータファイルを作らない」というモードがオンになります。

Step 3:設定を今すぐシステムに反映させる

ファイルに書き込んだ設定を、現在のターミナルウィンドウに読み込ませます。

source ~/.zshrc

Step 4:正しく設定されたか確認する

最後に、以下のコマンドを叩いてみてください。

echo $COPYFILE_DISABLE

画面に 1 と表示されれば設定完了です!

今後は、前回のrsyncコマンドの先頭にあった COPYFILE_DISABLE=1 をわざわざ書かなくても、自動的に ._* の生成が抑え込まれます。

手順2:Finderからサーバー接続した時の .DS_Store も止める

プログラミングやデプロイだけでなく、Macの「Finder」を使ってネットワーク経由でLinuxサーバーのフォルダを開いたとき、サーバー側に .DS_Store というMac用の隠しゴミファイルが勝手に生成されてしまう現象も、システム設定(defaultsコマンド)で一緒に止めておくとさらにスッキリします。

Step 1:ネットワーク共有での生成を禁止する

ターミナルで以下のコマンドを実行します。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

Step 2:外付けUSBメモリなどでの生成も禁止する(任意)

WindowsPCとやり取りするUSBメモリなどにゴミを作らせたくない場合は、こちらも実行しておきます。

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

Step 3:Finderを再起動して反映させる

設定を完全に反映させるため、Finderを一度再起動します。

killall Finder

まとめ

COPYFILE_DISABLE=1 を使って同期をしても、Macが壊れることも、Pythonプログラムが動かなくなることもありません。

これであなたのMacは、「外部環境(Linuxサーバーや共有ドライブ)に対して、Mac専用のゴミファイル(._.DS_Store)を絶対に撒き散らさない、開発・サーバー管理に最適なクリーンなマシン」に生まれ変わりました。

この設定をしておけば、今後のrsync同期が驚くほど静かで綺麗になりますよ!

コメント

タイトルとURLをコピーしました