7

Я пытаюсь перенести свою библиотеку Aperture в NAS. Он содержит несколько сотен тысяч файлов (довольно маленьких).

После того, как OS X заканчивает копирование больших файлов, расчетное время операции копирования становится от 2 часов до 4–5 дней (и увеличивается).

Я знаю, что решение может заключаться в том, чтобы скопировать их и скопировать архив, но проблема в том, что библиотека, которую я хочу скопировать, имеет размер около 80 ГБ, и на моем Mac осталось только 10 ГБ.

Есть идеи как их скопировать в таких условиях?

4 ответа4

7

Проблема, вероятно, заключается в том, что вы работаете со многими небольшими файлами, и у большинства инструментов копирования есть накладные расходы на файл. Можно скопировать файлы, перенаправить данные к месту назначения и распаковать архив на другом конце, даже не создавая tar-архив где-либо в системе.

tar cf - "~/Pictures/Aperture Library" | (cd "/Volumes/NAS/" && tar xf -)

Недостатком этого является то, что у вас не будет какого-либо измерителя прогресса, но он должен быть значительно быстрее, чем более обычная копия.

5

Вы можете использовать инструмент командной строки rsync для односторонней синхронизации ваших файлов. Принцип работы rsync упрощает прерывание процесса, если у вас нет на это терпения - вы можете легко возобновить его позже. Будут скопированы только файлы, которые еще предстоит перенести.

Вам нужно открыть Terminal.app, а затем вызвать rsync следующим образом:

rsync -avh --progress "~/Pictures/Aperture Library" "/Volumes/NAS/"

Здесь первый путь указывает на вашу библиотеку, которая по умолчанию должна быть под рисунками. Если вы не уверены, вы можете перетащить библиотеку в командную строку терминала, и она автоматически заполнит путь для вас. То же самое касается пути вашего NAS.

Опция -a включает режим архивирования, который устанавливает некоторые значения по умолчанию, включая рекурсивное копирование. -v сделает команду более многословной. -h включает удобочитаемые размеры файлов.

Rsync покажет вам индикатор прогресса. Если вы хотите отменить процесс, нажмите Ctrl C. Вы можете вызвать команду снова, чтобы продолжить rsync .

0

Если внешнее устройство поддерживает полноценную оболочку ssh, вы можете сделать:

tar cf - /your/dir|ssh -C 'tar xf - -C /directory/where/you/unpack'

не рекомендуется использовать опцию -c для tar, потому что у вас много файлов. печать его вызывает снижение скорости. флаг -C для ssh необходим для сжатия на лету в сети. Небольшой фрагмент данных вызывает шифрование / дешифрование небольших данных, что увеличивает скорость. но если он все еще медленный, вы можете изменить криптографический чип с 3des на twofish или, если это возможно, на 1des. последний не безопасен, но самый быстрый.

в противном случае вы можете использовать rsync, но rsync должен быть установлен на внешнем устройстве. видеть человека. rsync может передавать данные через сервер rsync или ssh.

0

Попробуйте MHISoft fastcopy с открытым исходным кодом. Он копирует файлы и каталоги рекурсивно. https://github.com/mhisoft/fastcopy/releases

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .