Как объединить две похожие, но не идентичные папки?

11

У меня есть папка (которая заполнена множеством подпапок и файлов), которая находится на диске FireWire [источник], который я пытаюсь переместить на USB-диск [место назначения].

Я пытаюсь переместить все файлы из источника в пункт назначения.

Я начал делать это через Finder, но он выдал мне ошибку прав доступа примерно на 1/8 пути, а затем остановился.

Я считаю, что при перемещении файлов между дисками Finder сначала выполняет «копирование», а затем удаляет «источник» только после успешного выполнения команды копирования.

Это означает, что некоторые файлы были успешно скопированы, но я не знаю, какие и сколько. Поэтому я начал копировать подпапки из источника в место назначения (меньшие наборы) и удалял их из источника после успешного копирования.

В итоге я не смог завершить этот процесс за один присест и потерял свое «место»

Так что теперь у меня осталось два неполных набора данных. Возможно, в источнике есть несколько файлов / папок, которые уже находятся в пункте назначения, но не все было скопировано.

Некоторые из папок могли быть частично скопированы, но не все их подпапки и т. Д.

Я пытаюсь найти лучший способ переместить оставшуюся часть источника в пункт назначения, одновременно сводя к минимуму дублирование. Мы говорим о большом количестве данных здесь (источник - 420,72 ГБ в 398 127 объектах, а пункт назначения - 298,84 ГБ и 390 149 элементов), поэтому мне, очевидно, придется каким-то образом попытаться автоматизировать это . Я просто не знаю как.

Я думал о gcp[GNU ф] с --update --archiveили dittoили rsyncили ChronoSync , но я просто не уверен , что лучшим вариантом и какие настройки следует использовать для какой программы будет рекомендовано (хочу ли я --archiveс gcp? Какими флагами бы использовать с dittoили rsync?)

Ти Джей Луома
источник
Это удивительное программное обеспечение: bombich.com (Carbon Copy Cloner). Решает все ваши проблемы.
Касым Дорсель
CCC или SuperDuper только поможет мне дублировать то, что у меня есть, верно? Мне нужно сначала объединить их.
TJ Luoma
Это может слиться. Вам нужно будет настроить параметры самостоятельно. т.е. настраивать эти настройки / расширенные настройки
Kassym Dorsel
Ах ... я этого не знал. Обязательно проверим.
TJ Luoma

Ответы:

15

Вы можете открыть Терминал и использовать один из следующих вариантов ( rsync, вероятно, подойдет вам, если вы хотите что-то, что не будет потеряно полностью, если вы остановите процесс ):

Стандартный способ UNIX

cp -R -v source/. destination

Отвратительный способ UNIX (перезапускаемый)

rsync -vaEW source/ destination

OSX "легкий" способ

ditto -V source destination

Источник


источник
1
Разве эта команда "cp" не нарушает программные ссылки? Например, приложения Mac, кажется, иногда используют ссылки внутри оболочки .app. (Ссылки всегда мне неизвестны, когда я пытаюсь это сделать.) Хорошая мысль о rsync, который может быть лучшим планом, поскольку (с таким большим количеством данных) вероятность прерывания является значительной.
TJ Luoma
1

Если вы используете FileMerge из Инструментов разработчика на двух деревьях каталогов, вы сможете увидеть, какие отдельные файлы были скопированы, поскольку он будет различаться между ними и показать различия.

В противном случае rsyncможет быть немного более автоматизированным, как упомянуто выше cksum.

СДТ
источник