[Mac] 移動先に同名のフォルダがある場合の置き換えと統合の注意点 【Windowsとの違い】 dittoコマンド

「作業中」フォルダに花の写真をまとめた「花」というフォルダがあって、「完了」フォルダに移動する、とします。

このとき、移動先の「完了」フォルダにすでに同じ名前の「花」フォルダがあったらどうなるのか、というのが今回のテーマです。

Windows PCの場合は、どちらも残せる

Windows PCでフォルダを移動した場合、中のファイルはすべて、移動先の同名フォルダに移動します。

つまり、「作業中¥花」フォルダの中身と「完了¥花」フォルダの中身が合計されます。

Windows PCで同名フォルダがあるとファイルは合計される
Windows PCで同名フォルダがあるとファイルは合計される

また、もし2つのフォルダの中にも同名ファイルがあった場合には、ファイルごとに「置き換え」るか「両方とも保存する」か選択することができます。

もし、完全に同じファイルなら置き換え、同名だけど中身が違うファイルなら、両方を保存します。その場合は、ファイル名の末尾に”(2)”などの番号が付加されます。

ですので、あまり同名フォルダを気にせずに、フォルダの整理ができます。

Mac OSの場合、同名フォルダは消える!

ところが、Mac OSで同様のフォルダ移動をする場合は、注意が必要です。

同じ名前のフォルダがあると「置き換えるか?」という確認メッセージが表示されるんです。

Finderで同名フォルダを置き換えると、元のフォルダの中身は消える
Finderで同名フォルダを置き換えると、元のフォルダの中身は消える

“〜”という名前の新しい項目がすでにこの場所にあります。現在移動中の古い項目で置き換えますか?

この「置き換え」は危険な操作で、先に移動先にあった「完了/花」フォルダの中のファイルは消去されてしまいます

はい…うっかり消去してしまったのです(;_;)

Mac OSでもコピーなら「結合」できるけど

フォルダの「移動」ではなく、「コピー」ならどうでしょう?

フォルダをドラッグするときにWindowsなら、「Ctrl+ドラッグ」をすると「コピー」になりますよね。Macの場合は、「option+ドラッグ」が「コピー」です。

フォルダをコピーした場合、コピー先に同じ名前のフォルダがあると、「置き換える」とは別に「結合」という選択肢が表示されます。

Finderでフォルダをコピー・統合する
Finderでフォルダをコピー・統合する

結合」だと、両方のフォルダの中身が「完了/花」フォルダに保持されます。

ただし、この操作は「フォルダのコピー」なので、元のフォルダ「作業中/花」は残っています。移動したい場合は、改めて元のフォルダを削除する必要があります。

コマンドで解決 ditto

#!/bin/sh
SRC=~/作業中
DST=~/完了
ditto $SRC $DST
rm -r $SRC/*

「作業中」フォルダ内の全てのフォルダを「完了」フォルダに統合しようと思うと、シェルスクリプトを利用することができます。

dittoコマンドは、コピー元フォルダの中身をコピー先フォルダに統合(マージ:merge)してコピーします。最後に、rmコマンドで、コピー元のフォルダの中身を削除しています。

ファイル・フォルダの移動は同名の場合があるので注意が必要ですね。

余談ですが、「ditto(ディト)」という見慣れない言葉。

実はラテン語由来で「同上」、つまり「上記と同じ」という意味です。原型は「dittare」という動詞で「宣言する」「繰り返す」という意味です。

「〃」は「ディト・マーク」ともいいます。