「(競合コピー)」が同期のたびに増える
“(conflicted copy)” keeps showing up
iCloud や Remotely Save は、タイミングが悪いと同じ内容の別ファイルを隣に作ります。
iCloud and Remotely Save can create a duplicate file right next to the original when timing is off.
CopyGuard は、iCloud・Dropbox・Remotely Save・Syncthing など、Obsidian Sync 以外の方法で同期しているときに増える「競合コピー」「空ファイル」「一時・破損ファイル」を見つける整理プラグインです。見つけた項目は、選んだものだけ隔離フォルダへ移すだけ。削除は別の確認ステップで、既定は「削除ミスをおこさない」です。無料(MIT)。
CopyGuard is a tidy-up plugin for vaults synced with iCloud, Dropbox, Remotely Save, or Syncthing — the setups without Obsidian Sync's built-in conflict merging. It finds sync-conflict copies, empty files, and leftover temp files, then moves only what you approve into a quarantine folder. Deleting is a separate, confirmed step built to avoid delete mistakes. Free & MIT.
Obsidian Sync ではない同期方法だからこそ起きる、地味に困る話です。
The quiet, everyday friction of syncing a vault without Obsidian Sync.
iCloud や Remotely Save は、タイミングが悪いと同じ内容の別ファイルを隣に作ります。
iCloud and Remotely Save can create a duplicate file right next to the original when timing is off.
大事な版をうっかり消すのが怖くて、結局そのまま溜め込んでしまう。
Afraid of losing the wrong version, so the clutter just piles up instead.
アプリやOSが落ちたあとの .tmp や ~ 付きファイルが Vault に散らばる。
.tmp files and stray ~ files scatter across the vault after an app or OS crash.
公式 Sync のマージ機能がないぶん、他の同期方法では自分で片づける仕組みが必要になります。
Without official Sync's built-in merge handling, other sync setups need a manual way to clean things up.
全部まとめて消したりしません。見て、選んで、それから動かします。
Nothing is deleted in bulk. You look, you choose, then it moves.
リボンの ⧉ アイコン、またはコマンド「Open CopyGuard」。
Click the ribbon icon, or run the Open CopyGuard command.
競合コピー・空ファイル・一時ファイルに分けて一覧表示します。
Conflict copies, empty files, and temp files are listed separately with badges.
チェックした項目だけ K-Tech Trash Box へ(名前は変更可能)。
Only ticked items move into K-Tech Trash Box (the name is configurable).
起動時、箱に中身があるときだけ確認します。既定は「削除ミスをおこさない」。
On startup, if the box has files, you're asked. The default is built to avoid delete mistakes.
「自動でまとめて消す」道具ではなく、「見てから自分で決める」ための道具です。
Not an auto-cleaner. A tool built for you to review, then decide.
同じフォルダに原本があれば、それと対にして出します。iCloud などの型は、原本がなくても候補に出します(「同じフォルダに元ファイルなし」と表示)。番号付きの名前は、下の別設定です。
If an original sits in the same folder, it is paired with that file. Usual sync-name patterns are still listed when the original is missing (labeled “no original in the same folder”). Numbered names are a separate setting below.
「Note 2.md」のような名前は本人の題と区別しづらいため、初期設定では対象外です。
Names like “Note 2.md” are easy to confuse with a title you chose, so this is off unless you turn it on.
空ファイルは一定日数を過ぎたものだけ。対象の拡張子も指定できます。
Empty files only count once they're past a minimum age, and you choose which extensions matter.
今開いているファイルや .icloud のプレースホルダは対象から外れます。
Files you currently have open and .icloud placeholders are skipped.
既定は「K-Tech Trash Box」。スキャン対象・除外フォルダも指定できます。
Default is “K-Tech Trash Box.” You can also set which folders to scan or skip.
日本語・英語・ドイツ語・韓国語・簡体字・繁体字(台湾)・スペイン語・ポルトガル語。アプリの言語設定に追随します。
Japanese, English, German, Korean, Simplified Chinese, Traditional Chinese (Taiwan), Spanish, and Portuguese — the plugin follows the app's language.
役割をはっきりさせた、小さくて正直なツールです。
A small, honest tool with a clearly defined job.
詳細は MIT ライセンス をご確認ください。
See the MIT License for the full terms.
初期値のままでも使えます。必要なところだけ、あとから調整してください。
Works with the defaults. Adjust only what you need, whenever you need it.
| 設定Setting | 初期値Default | 説明Description |
|---|---|---|
| 隔離フォルダ(Trash Box)Quarantine folder | K-Tech Trash Box |
競合コピー・空ファイル・一時ファイルの移動先Where approved items are moved |
| スキャン / 除外フォルダScan / excluded folders | 空欄(Vault 全体)Empty (whole vault) | カンマ区切りで範囲を絞れます。隔離フォルダは常に除外Comma-separated. The quarantine folder is always excluded |
| 競合コピーを検出するDetect conflict copies | ON | iCloud / Dropbox / Remotely Save / Sync / Syncthing の名前の型に対応Matches iCloud / Dropbox / Remotely Save / Sync / Syncthing name patterns |
| 番号付きの重複も含めるInclude numbered duplicates | OFF | 「Note 2.md」なども対象にする、より広い(=リスクのある)検出Also treat “Note 2.md”-style names as copies — broader, and riskier |
| 空ファイルを検出するDetect empty files | ON・7日・mdON, 7 days, md | 開いているファイルは対象外。日数・拡張子は変更可能Open files are skipped. Age and extensions are configurable |
| 一時・破損ファイルを検出するDetect temp / corrupt files | ON・7日ON, 7 days | .tmp / 末尾 ~ / Office ロックファイルなど。.icloud プレースホルダは除外.tmp, trailing ~, Office lock files, and similar. .icloud placeholders are skipped |
| 起動時に確認するAsk on startup | ON | 隔離フォルダに中身があるときだけ確認。既定は「削除ミスをおこさない」Only asks if the quarantine folder has files. Default is built to avoid delete mistakes |
Obsidian の Community plugins から検索して入れられます。GitHub Releases から3ファイルを置く方法もあります。
Search and install from Obsidian Community plugins. You can also place three files from GitHub Releases.
Obsidian → 設定 → Community plugins →「Turn on community plugins」
Obsidian → Settings → Community plugins → Turn on community plugins
Browse →「CopyGuard」で検索 → Install → Enable。ID は copy-guard。
Browse → search CopyGuard → Install → Enable. ID: copy-guard.
リボンの ⧉ アイコン、またはコマンド「Open CopyGuard」。
Click the ⧉ ribbon icon, or run Open CopyGuard.
手動で置く場合は、GitHub の Releases から main.js、manifest.json、styles.css を .obsidian/plugins/copy-guard/ へ入れてください。
To install by hand, download main.js, manifest.json, and styles.css from GitHub Releases into .obsidian/plugins/copy-guard/.
新しいバージョンは GitHub Releases とここに追記していきます。
New versions are published on GitHub Releases and added here.
スキャン後、「同じ内容だけ選ぶ」で、同じフォルダの元ファイルと中身が一致する競合コピーだけにチェックが付きます。確認してから隔離フォルダへ移します。マージはしません。
After a scan, Select identical copies checks only conflict copies whose bytes match the original in the same folder. You still review before moving them to the quarantine folder. Still does not merge.
Proton Drive の (# Edit conflict) / (# Name clash)、公式 Sync の Note-conflict-YYYY-MM-DD を検出。同じフォルダに元があるとき、中身が同じなら一覧に出す。マージはしません。
Detects Proton Drive (# Edit conflict) / (# Name clash) names and official Sync Note-conflict-YYYY-MM-DD files. When the original is in the same folder, a badge shows if the copy has the same bytes. Still does not merge.
Dropbox の実ファイル名(ユーザー名+競合コピー)、公式 Sync、韓国語・中国語・スペイン語・ポルトガル語、Nextcloud を検出。元ファイルがなくても候補に出す。Buy Me a Coffee ボタンから !important を外した。
Detects real Dropbox names (account plus conflicted copy), official Sync leftovers, Korean / Chinese / Spanish / Portuguese, and Nextcloud. Lists name matches even without the original. Buy Me a Coffee button no longer uses !important.
UI を日本語・英語・ドイツ語・韓国語・簡体字・繁体字(台湾)・スペイン語・ポルトガル語に対応。設定画面をタグ式タブ(基本 / スキャン / 削除 / 情報)に変更。不具合は GitHub Issues へ案内。起動時の削除確認をオンにするときに警告を表示。
UI in Japanese, English, German, Korean, Simplified Chinese, Traditional Chinese (Taiwan), Spanish, and Portuguese. Settings use tag-style tabs (General / Scan / Delete / Info). GitHub Issues banner for reports. Warning modal when enabling startup delete confirmation.
builtin-modules の置き換え、getLanguage() への切り替え、設定の型付き読み込み、createDiv/createSpan の利用、FileManager.trashFile() への変更、getSettingDefinitions() による設定検索対応、確認クリックの Promise 処理を修正。最終削除はアプリの「削除したファイル」設定に従います(独自のOSゴミ箱トグルは廃止)。
Addressed community review notes: dropped builtin-modules, switched to getLanguage(), typed settings loading, createDiv/createSpan helpers, FileManager.trashFile(), settings search via getSettingDefinitions(), and fixed a floating Promise on the confirm click. Final delete now follows the app's own “Deleted files” setting (the separate OS-trash toggle was removed).
設定画面でプラグイン名をそのまま見出しに使わないよう修正。
Settings no longer use the plugin's own name as a heading.
設定内の見出しに Setting.setHeading() を使用。
Settings headings now use Setting.setHeading().
競合コピー(英語・日本語・ドイツ語の名前、Syncthing)、空ファイル、一時ファイルの確認。選んだものだけ K-Tech Trash Box へ移動。削除前の確認(既定は削除ミスをおこさない)。UI は日本語・英語・ドイツ語。免責とプライバシー表示。Buy Me a Coffee(任意)。
Review conflict copies (English / Japanese / German names, Syncthing), empty files, and leftover temp files. Move only what you select into K-Tech Trash Box. Ask before deleting (default is built to avoid delete mistakes). UI in Japanese, English, or German. Disclaimer and privacy notice in the plugin. Buy Me a Coffee (optional).