※〜MacOS 10.6〜10.14且つHFS+(Mac OS拡張ジャーナリング)1 限定。10.15及びAPFSは手元に環境がない為、カスを吐くのか現時点では検証できません(2020.10)
※当方紙媒体DTP戦士なため、基本的に最新OSの運用は致しません。ご了承下さい。
Automator内の説明・記述を再度修正しました orz(2020.11.3)
サポートのHARMAN移管に伴い、Adobe AIR配布Link先を修正しました(2021.3.9)
NASもしくはUSBメモリーなどで、Windowsと直接生データの遣り取りをしている方。
Windows・Linux側からはこういったデータが見えていて、知らずに相手方(もしくはサーバ管理者)に迷惑をかけているかもしれません。事前にMac側から消しておいてあげましょう。まあ目障りなだけで、然程実害ないんですが。 ただプログラムがコレも数としてカウントしてしまうので、困る事はあります
MacからのNAS(smb)接続でデータコピーや移動に失敗したり、互換USBメモリー(FAT32・exFATボリューム)のイジェクトに失敗するのは、この見えないカスが影響している可能性もあります。試してみて下さい。
これらは俗にAppleDouble 2(のカケラ)、リソースフォークなどと呼ばれます。面倒なので説明はWiki先生に任せて← まず結論から、削除方法。
※NAS or 互換USBメモリーに上げた後のフォルダに対して処理して下さい。 それ以前、リソースフォーク生成前には意味ありません。発生条件は下に記載します
記述「do ~ done」の間に、下記コマンドを入力
ここに保存される(ユーザ→ [ユーザー名]→ ライブラリ→ Services)
これで登録完了。 find( )の条件(名称指定)で見つかった削除リストが表示される →OKで閉じる。 ターミナルからの直接実行も可能ですが、パス指定の楽な乙女ちゃんの方が断然お勧め。
シェルスクリプト部分は、ここまで冗長でない ※通常ターミナルでは最後を対象フルパス or .(ピリオド=今いる場所) と書きますが、Automatorでは最初に for f in "$@"と変数宣言する様です
とするやり方もありますが、どうもデータフォーク側にも影響があるようで、新規保存し直すまで一部アプリでサムネイルが見えなくなります。やめておいた方が無難。 カスどもが確実に消えたかどうかMac OS GUI上から視認する事はできないので、ターミナルから →enter で確認してみましょう。 ※スクエアブラケット[]はトル
※フルパスの中にスペースがある場合、フォルダードロップではなく、 ・・・USBメモリーの
.fseventsd .Spotlight-V100 .Trashes
を消していないのは分かると思いますが、これらは互換ドライブがマウントしただけでMacOSが生成する性質なためMac側から消す意味がなく、Windows上で手動削除するしかありません ←
この3つは削除してなんの問題もありませんが、Macからマウントするたびに復活します。 デキる人であれば、cronやKeyboard Maestro[^3] などで自動削除スケジュールが作れると思いますが、後述の様にclientでの大量処理は負荷がキツい以上、狭い範囲の固定ディレクトリに対してのスケジュールでは、あまり意味ないのではないかと。そういう処理はサーバ側に組ませる方がいいと思います。
[^3]: Mac用キーボードユーティリティ。有償 Keyboard Maestro ネット上でこの削除方法を探すと、'.AppleDouble' 指定のみのものをよく見ますが、複数の環境で試していずれも失敗しました。 ※10.10、10.14で検証
例え属性指定できたとしても、消さない方がいい種類のある可能性もあるので、愚直に名称でひとつひとつ指定した方がいいのではないかなと、私は思ってます。 因みにNASの場合、AFP(Apple Filing Protocol)[^4] 接続する事でAppleDoubleリソースフォーク生成(分離)は回避できます。afp対応しないnetatalk 3.x[^5] 以外のNASでは不可。NAS以外の事情は知りません
将来的にAppleが悔い改めデータフォーマットを見直す時が来れば、これらは解消するのかもしれません。 apfsはどうなってますのやろ [^4]: AFP Wikipedia 「ネットワークボリューム・USBメモリーに最初から.DS_Storeを作らない方法(コマンド)」は広く紹介されていますが(※Macボリューム上は不可能)、AppleDouble(リソースフォーク)及び「. fseventsd .Spotlight-V100 .Trashes」を作らない方法というのは、理論上不可能。ですよね コマンドプロントから「.AppleDouble」で削除するエントリーを見かけましたが、私が検証した限りではPowerShellやコマンドプロンプトは、例え名称決め打ち指定であっても、CUI上でApple独自のリソースフォークを認識できない様です。何かしらやりようはあるんでしょうか。
GUI側ではしっかり選択・deleteできるクセに、、
Mac OSと同様に他言語からの削除はできますが、まだアプリ化する能力が私にはない為、今回は断念。 ESTKだとドキュメント・フォルダ両方削除できる再帰処理がちっと面倒だった← のもあるし、わざわざESTK起動してパスを選択しにいって、、あまり効率的ではありませんよね なので、Windowsではカス削除くんを利用するのが一番手っ取り早いです。 Adobe AIR(Runtime)必須。
※カス削除くん公式内のAdobe AIRはリンク切れになっています。
カス削除くんMacでは、AppleDoubleカスを消す事はできません。Macからは、先に説明したAutomatorかターミナルコマンドを。
更に、ご覧になって分かるように.fseventsd .Spotlight-V100 .Trashesには対応していません←←
この3つは手動で削除して下さい、、 .DS_Store ._.DS_Store .fseventsd .Spotlight-V100 .Trashes デスクトップ上の.DS_Store Windowsデスクトップ上のdesktop.ini 何か間違えてたら、ご指摘お願いします←
ちゃんとエディタでチェックしてないので、脚注3以降の表示がおかしい・・(泣 次期MacOSではAFPを切り捨て、SMB接続に絞る様ですね。
カス問題も、そちらに合う様にデータ構造が改良されるのでしょう。まだまだ読めませんが。※MacOS(~10.14)側から削除
Automatorに登録
検索対象:Finder
シェル:/bin/bash
入力の引き渡し方法:引数として
find "$f" \( -name '.DS_Store' -or -name '._*' -or -name '.Bridge*' -or -name 'Thumbs.db' \) -delete -print
削除の実行
先ほど作った設定を選択
※このウインドウが出る前にもうdelete済みなので、ここで実行・拒否を選びたい場合は構造と記述を少し変えないといけません(面倒臭い)←
dot_clean --keep=dotbar "$f"
find [フォルダをターミナルウィンドウにドロップ] \( -name '.*' -or -name 'Thumbs.db' \) -print
対象を右クリック→ パスをコピー→ 記述「find(半角スペース)」の後にカーソルを立て、(ターミナルメニュー)編集→「テキストをエスケープしてペースト」
で指定して下さい。
Windowsから削除
カス削除くんのインストール・実行
※Adobe AIRは、2021.1よりサポート及び開発をHARMANに移管しました。2021.3.8現在
不可視ファイル類が発生する条件:
※WinArchiver(MacWinZipper), CleanArchiver等リソースフォーク対応済みソフト、及びMacOSに由来しない圧縮は除く(ターミナル、その他言語)
注意事項(共通)
不可視ファイルの種類(削除可)
Winのdesktop.iniと同等。手動配置の位置、ウインドウサイズ、アイコンサイズ等、フォルダオプション情報を記録。Macデスクトップ上以外は消してOK
.DS_Store自体をMacOS側から他へコピーした事で、そのリソースフォークとして作られたもの(多分)
MacOSのFile System Event log。ファイルが作成、変更、または削除されるたびに通知され、実行中のMacプログラムが情報を知るために参照する
スポットライトインデックス(database)
MacOSが検索するためのインデックスを作成する …そういえば、これを今後作成しないターミナルコマンドが確かありましたよね
MacOS固有の「仮ゴミ箱」システム。
Windows上のアイコンプレビューを高速化するためのキャッシュ。捨てない方がいい不可視ファイル
(カラム・アイコン表示以外で)フォルダ・データ名の日本語表示に必要
アイコン表示での配置・アイコン等の情報が初期化されます
Winのデスクトップ情報。表示オプション→ 表示→ 保護されたオペレーティングシステムファイルを表示しない→ OFF で見える(非推奨)
最後に
11.30 追記