Копирование множества файлов без остановки на ошибках в OSX


16

Мне нужно скопировать несколько гигабайт с внешнего HD на мой стон HD, и некоторые файлы вызовут ошибки. Если я сделаю это с искателем, он остановится на первой ошибке.

Есть ли способ скопировать все, независимо от ошибок? Что-то вроде копии теракопии в Windows?


Хорошо, если произошла ошибка, вы, вероятно, не хотите копировать этот файл. Или вы просто хотите пропустить те, где происходит ошибка? И, на самом деле, лучший вопрос будет: почему вы получаете эти ошибки? Что это за ошибки, даже?
Slhck

Я хочу скопировать все остальные файлы и обработать ошибки, какими бы они ни были позже.
cfischer

Какие ошибки вы получаете конкретно?
Slhck

1
Я надеюсь, что они добавят функцию Windows Vista + в Finder и продолжат копирование, предупреждая вас об ошибках.
Мэтью Лок

Ответы:


20

В терминале введите

cp -Rp /Volumes/<source-volume>/<source-user>/<source-folder>/ /Volumes/<destination-volume>/<destination-folder>/

Папка назначения должна быть новой папкой, которую вы создаете.

Если после запуска вы получите информацию о новой папке, вы увидите увеличение размера папки.

пример

cp -Rp /Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/ /Volumes/external/newfolder

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

* Если имена ваших каталогов содержат пробелы, заключите в кавычки путь

пример

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder

2
какие-либо объяснения по поводу флага -Rp?
user337085

Это должно отличаться для osx, в linux -Rp означает рекрутировать и сохранять атрибуты, не связанные с ошибками.
Benubird

1
man cpна macOS говорит мне: «В режиме -R, cp продолжит копирование, даже если будут обнаружены ошибки».
Adriaan

2

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

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

ddрасшифровывается как «дублирование диска». Это утилита командной строки в комплекте с Mac OS X. Также доступна бесплатная версия для Windows.

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

Аргументы dd просты:

  • if = path_of_file_with_IO_errors указывает входной путь
  • of = path_of_clean_copy_to_create указывает выходной путь
  • conv = noerror, sync указывает dd быть отказоустойчивым

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

Из-за ошибок ввода / вывода для создания чистой копии dd может потребоваться больше времени, чем для обычной.

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

Ошибки ввода / вывода - серьезный бизнес, и утилизация карты после восстановления видео, вероятно, ПРАВИЛЬНОЕ. Также следует учитывать, что некоторое количество отснятого материала не будет восстановлено или будет обладать качеством, меньшим звездного.

Источник: http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

Пример:

dd if=/Volumes/CD/broken_movie.avi of=~/Movies/broken_movie.avi conv=noerror,sync

Смотрите также:


1
Я слышал, что авторы dd хотели назвать его cc для точной копии, но cc уже был принят компилятором C. Мне это нравится больше, чем «дублирование диска» 😀
Тим Бьют

1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.