3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

macOSからファイルコピーで生成される._ファイルを削除する方法

3
Posted at

はじめに

macOSで作成したファイルをFinderからSDカードやUSBメモリにファイルをコピーすると._で始まるファイルが作られます。このファイルのことをAppleDoubleというそうです。このファイルにはmacOSでのデータ以外の拡張属性などが保存されています。

最近、PicoCalcを使用する機会が多く、PicoCalcの画面でファイルを選択するときにこのファイルの存在がちょっと邪魔になってきました。
AppleDoubleはPicoCalcでは利用しないファイルなので削除しても問題ないので削除法やSDカードなどで生成されない方法があるかを調べてみました。

AppleDoubleを生成しない方法

AppleDoubleを生成しない方法がないかをChatGPTに質問したりして調べましたがmacOSにはその機能は存在しないようで、PathFinderなどのサードパーティ製ソフトウェアには機能があるようです。

AppleDoubleを削除する

macOS標準でAppleDoubleの生成を抑制できないので作成されたAppleDoubleを削除する方法を探すと、macOS標準コマンドのdot_cleanがありました。コマンドに続けてディレクトリ名を指定すると再帰的に削除を実行します。
たとえば、NO NAMEというSDカードのAppleDoubleを削除する場合は次のようにコマンドを実行します。

$ dot_clean /Volumes/NO\ NAME

コマンドのオプションをChatGPTにまとめてもらった結果を以下に示します。

オプション 作用 典型的な用途
-f “フラット”実行。指定ディレクトリのみを処理し、サブディレクトリは 再帰しません 最上位フォルダだけを掃除したいとき
-m すべての ._* (AppleDouble)ファイルを 無条件で削除。メタデータをネイティブファイルへマージせず破棄します。 Windows/カメラ機器に渡す前の完全クリーンアップ
-n 対応する本体ファイルが 存在しない ときだけ ._* を削除。 手動で本体を消した後のゴミ取り
-s シンボリックリンクを 辿って クリーニング。リンク先が ._* だった場合も処理対象。 symlink が混在するバックアップツリー
-v 詳細(verbose)出力。どのファイルを処理したかを端末に表示。 動作確認/ログ取り
-h ヘルプを表示。 オプション確認
--keep=<mode> AppleDouble とネイティブの 競合時にどちらを優先するか を選択:
• mostrecent (既定)…個々の属性で「新しい方」を残す
• dotbar …常に ._* 側を採用
• native …常にネイティブ側を採用
特定メタデータを残したい場合

AppleDoubleをコピーしないようにする

FinderからSDカードなどにファイルをコピーするとAppleDoubleもコピーされるのでそれを抑制するにはターミナルからcp -Xコマンドを使えばいいことが分かりました。

ファイルtest.basをSDカードNO NAMEにコピーする場合は次のように実行します。

$ cp -X test.bas /Volumes/NO\ NAME

さいごに

macOSにSDカードなどのリムーバブルメディアにAppleDoubleの生成を抑制する機能が標準で搭載されるありがたいですね。

参考サイト

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?