Copiar muchos archivos sin detenerse ante errores en OSX

16

Necesito copiar varios GB de un HD externo a mi disco duro y algunos archivos causarán errores. Si hago esto con el buscador, se detendrá en el primer error.

¿Hay alguna forma de copiar todo sin importar los errores? ¿Algo así como una copia de la teracopia en Windows?

cfischer
fuente
Bueno, si ocurre un error, probablemente no quieras copiar ese archivo. ¿O simplemente quiere omitir los que tienen lugar un error? Y, en realidad, la mejor pregunta sería: ¿Por qué obtienes esos errores? ¿Qué errores son estos, incluso?
slhck
Quiero copiar todos los demás archivos y manejar los errores, sean los que sean más adelante.
cfischer
¿Qué errores estás recibiendo específicamente?
slhck
1
Espero que agreguen la función Windows Vista + al buscador y sigan copiando mientras le advierten de errores.
Matthew Lock

Respuestas:

20

En la terminal, escriba

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

La carpeta de destino debe ser una nueva carpeta que está creando.

Si obtiene información sobre la nueva carpeta después de ejecutar esto, puede ver el aumento del tamaño de la carpeta.

Ejemplo

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

Copiará y mostrará errores para cualquier cosa que no pueda copiar pero sin detenerse.

* Si los nombres de su directorio contienen espacios, ponga comillas alrededor de la ruta

Ejemplo

cp -Rp "/Volumes/Macintosh HD/User/Bob/Desktop/stufftocopy/" /Volumes/external/newfolder
falcorklaatu
fuente
2
alguna explicación sobre -Rp flag?
user337085
Esto debe ser diferente para osx, en linux -Rp significa recusar y preservar atributos, nada que ver con errores.
Benubird, el
1
man cpen macOS me dice: "En modo -R, cp continuará copiando incluso si se detectan errores".
adriaan
2

Puede usar cpcomo se sugiere o rsync, pero en el caso de error de E / S, a veces no funcionará.

Entonces, en este caso, puede usar la ddherramienta para archivos específicos que estaban dañados.

ddsignifica "duplicación de disco". Esta es una utilidad de línea de comandos incluida con Mac OS X. También está disponible una versión gratuita para Windows.

Tenga mucho cuidado, incluso si está familiarizado con la línea de comandos, porque dd puede causar daños irrecuperables a sus datos si no especifica correctamente la entrada y la salida. Usted ha sido advertido.

Los argumentos de dd son directos:

  • if = path_of_file_with_IO_errors especifica la ruta de entrada
  • of = path_of_clean_copy_to_create especifica la ruta de salida
  • conv = noerror, sync le dice a dd que sea tolerante a fallas

Su ruta de salida no debe estar en el mismo disco que el archivo dañado. En realidad, no debe continuar usando la tarjeta o el disco con errores de E / S, porque es probable que cause más problemas en el futuro. Después de recuperar los datos, debe desecharlos o, como máximo, usarlos para almacenar cosas sin importancia.

Debido a errores de E / S, dd puede tomar más tiempo para crear la copia limpia de lo que tomaría una copia normal.

Pero realmente vale la pena esperar, porque ahora tenemos un archivo limpio en el que podemos usar nuestro arsenal de herramientas de diagnóstico, vista previa y recuperación de video.

Los errores de E / S son un asunto serio, y desechar la tarjeta después de recuperar los videos es probablemente lo CORRECTO. También debe considerar que cierta cantidad de material de archivo no se recuperará, o con una calidad menos que estelar.

Fuente: http://aeroquartet.com/wordpress/2012/06/06/how-to-copy-a-file-with-io-errors/

Ejemplo:

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

Ver también:

kenorb
fuente
1
Escuché que los autores de dd querían nombrarlo cc, para copia al carbón, pero cc ya fue tomado por el compilador de C. Me gusta más que la "duplicación de disco" 😀
Tim Büthe
1

Utilizo Beyond Compare exactamente para este propósito (es un software comercial pero tiene una versión de prueba gratuita). Le dice que copie un archivo, una carpeta o una unidad completa o cualquier combinación y finaliza hasta el final de la tarea e informa problemas a medida que avanza. Esto no ayuda a recuperar archivos dañados, pero finalizará el trabajo sin importar cuántos problemas encuentre.

Tim D
fuente