Macで同じ名前のフォルダをファイルを失わずに結合する方法

同じ名前のフォルダが2つあることはよくあります。Mac にある旅行の写真と、クラウドに置いた少し古いコピー。ノートパソコンのプロジェクトと、USB メモリに入れたその版。欲しいのは、両方の中身がすべてそろった1つのフォルダです。ところが Finder で一方をもう一方の場所にドラッグすると、ダイアログはそこにあるフォルダを置き換えるかどうかを尋ねてきます。置き換えは何も結合しません。元からあったフォルダが新しいフォルダと入れ替わり、そのフォルダにしかなかったファイルも一緒に消えます。
Finder で2つのフォルダを結合するには、Optionキー(⌥)を押したまま、もう一方を含むフォルダへフォルダをドラッグし、「結合」をクリックします。ただし、このボタンが出るのは一部の場合だけです。出ないときは、ターミナルの ditto や rsync で結合できます。Folia Files のようなファイルマネージャなら、同じ名前のフォルダがぶつかるたびに結合を選べ、同じ名前の2つのファイルは新しい方を残し、置き換えたものはゴミ箱に入れます。
「置き換える」が危ない理由
同じ名前のフォルダがすでにある場所へフォルダをコピーまたは移動すると、Finder は置き換えるを勧めます。ドラッグしているフォルダを残し、そこにあったフォルダを中身ごと取り除く操作です。古いフォルダにしかなかったファイルは、新しいフォルダには移されません。
Windows から移ってきた人はここで驚きます。エクスプローラーは同じ名前のフォルダを自動的に結合し、同じ名前のファイルについてだけ確認してきます。Finder は、頼まれたときにしか結合しません。
Finder でフォルダを結合する
- 結合先のフォルダを含むフォルダを開き、その横にドロップできるようにします。結合先のフォルダそのものの上にはドロップしないでください。ドラッグしたフォルダがその中に入るだけです。
- ⌥(Option)キーを押したまま、もう一方のフォルダをそのウインドウにドラッグして放します。
- 同じ名前のフォルダがすでにあると告げるダイアログで、結合をクリックします。
同じディスク上では、Option キーによって Finder は移動ではなくコピーを行います。そして「結合」はコピーのときに表示されます。Finder の「結合か置き換えか」を尋ねるメッセージはどれも「コピー中のフォルダ」について述べており、移動のときのメッセージは置き換えるかどうかしか尋ねません。結合したあとも元のフォルダはそのまま残るので、結果を確かめてから自分で削除します。
「結合」が表示されないとき
Apple のガイド自身が2つの制限を挙げています。
- 「結合」が表示されるのは、一方のフォルダに、もう一方にない項目が含まれている場合だけです。
- 同じ名前のファイルの異なるバージョンが含まれている場合、選べるのは「中止」と「置き換える」だけです。
Finder ではファイルごとに決めることはできず、選ぶ前に何が違うのかも見せてくれません。
ターミナルでフォルダを結合する
macOS に付属する2つのコマンドで、確認なしにフォルダを結合できます。まずはコピーで試してください。
ditto
ditto ~/Desktop/Photos ~/Documents/Photos
結合先のフォルダがすでにある場合、ditto はサブフォルダも含めてコピー元をそこに結合します。同じ名前のファイルは、どちらが新しいかに関係なく上書きされ、上書きされたファイルはゴミ箱には入りません。
rsync
rsync -aEuv --dry-run ~/Desktop/Photos/ ~/Documents/Photos/
-aはサブフォルダをコピーし、日付とアクセス権を保ちます。-Eは拡張属性もコピーします。Finder のタグはここに保存されています。-uは、結合先にあるファイルの方が新しい場合、そのファイルをスキップします。--dry-runはコピーされる予定のものを一覧にするだけです。結合するには、このオプションを外して同じコマンドを実行します。- コピー元フォルダの後ろのスラッシュには意味があります。Photos フォルダそのものではなく、Photos の中身をコピーします。
--deleteは付けないでください。コピー元にないものを結合先からすべて削除します。
rsync が置き換える古いファイルは上書きされます。残しておきたい場合は --backup を付けると、名前の末尾に ~ が付いた形で保存されます。
Folia Files でフォルダを結合する
Folia Files では、フォルダのコピーや移動は Finder と同じです。別のパネルやフォルダへドラッグするか、⌘C と ⌘V を使うか、ファイル › もう一方のパネルにコピー(F5)を選びます。同じ名前のフォルダがすでにあると、ダイアログがコピー対象とすでに存在しますの2つを並べて表示し、項目数と日付、そして新しい方には新しいのラベルを付けます。

各ボタンの働き
- 両方とも残すがデフォルトのボタンです。ほかの場所で入力している最中にダイアログが現れても、↩ で何かが失われることはありません。
- 結合は、既存のフォルダに中身を追加します。両側のサブフォルダも結合されます。同じ名前のファイルが2つあれば新しい方が残ります。コピーしてきた方が新しければ、元からあった古い方はゴミ箱へ。元からあった方が同じかそれより新しければ、そちらが残り、コピーしてきた方はコピーされません。
- 置き換えるはフォルダ全体を入れ替えますが、置き換えられたフォルダがゴミ箱に入るのは、新しいフォルダのコピーが完了してからです。コピーが失敗したりキャンセルしたりした場合、古いフォルダはそのまま残ります。
- スキップはこの項目を飛ばして残りを続け、停止は操作を終了します。
ぶつかったのがフォルダ同士ではなくファイル同士の場合、結合の代わりに新しい場合が表示され、コピーする項目の方が新しいときだけ置き換えます。複数の項目が競合しているときは、ほかの…件の競合に適用のチェックボックスで、まとめて同じ答えを返せます。
結合はコピーだけでなく移動でも使えます。すべてが既存のフォルダに移り、そのあと移動したフォルダは、中に残った古い重複ファイルごとゴミ箱に入ります。App やその他のパッケージは1つのファイルとして扱われ、中身が結合されることはありません。
ほかにも、ファイルを守るためのルールがあります。
- 結合でファイルが完全に削除されることはありません。一部のネットワークドライブのようにゴミ箱に入れられないファイルは、そのまま残り、Folia Files がそのことを知らせます。
- ディスク、ホームフォルダ、macOS のフォルダは決して置き換えられません。「置き換える」を選ぶと、Folia Files は代わりに「結合」か「両方とも残す」を勧めます。
- 外部ドライブやサーバへの結合が途中で途切れても、止まったところから再開できます。
結合にできないこともあります。⌘Z では取り消せません。ただし、結合で置き換えられたファイルはすべてゴミ箱にあります。そのほかの点は安全なコピーと履歴のページで説明しています。ここで紹介したことは、Web サイト版と Mac App Store 版のどちらの Folia Files にもあります。
結合する前に違いを確かめる
結合でいう「新しい」とは、変更日が新しいという意味でしかありません。あとから保存し直されたファイルが、残したかった版でなくても優先されます。だからこそ、先に確かめておく価値があります。
ツール › 比較…(⇧⌘K)は2つのフォルダをサブフォルダまで比べ、各項目を左のみ、右のみ、異なる、同一に分類します。サイズか日付が違えば「異なる」になり、内容を比較(低速、正確)をオンにすると1バイトずつ確かめます。そのあと選択項目を右へコピー →で、選んだものだけを同じダイアログを通してコピーできます。

どの方法を選ぶか
- どちらか一方のフォルダにしかないファイルだけ:Finder で ⌥ を押しながらドラッグし、「結合」。
- 同じ名前のファイルが両方にあり、新しい方を残したい:
-u付きの rsync か、置き換えたものをゴミ箱に入れる Folia Files の「結合」。 - 同じ2つのフォルダを何度も結合する:手で結合するより、同期させておく方が確実です。


