3 votos

¿Cómo omitir archivos con la utilidad de línea de comandos ditto?

Estoy intentando importar una gran biblioteca de iPhoto (más de 100 GB) ubicada en una unidad externa aparentemente defectuosa, que siempre produce un error -36 cuando intento copiar la biblioteca utilizando Finder. Por lo tanto, he probado el ditto el enfoque sugerido en este artículo :

ditto -v ~/Pictures/Photos\ Library.photoslibrary/ /Volumes/MyDrive/Photos\ Library.photoslibrary/

El problema es que, cuando ditto alcanza el archivo defectuoso, obtengo estos errores registrados:

ídem: (...)/MVI_5490.MOV: Dispositivo no configurado

ídem: (...)/IMG_5489.JPG: No such file or directory

De repente, MacOS se queja de que la unidad se ha expulsado incorrectamente y la copia se detiene.

Estos dos archivos parecen tener ID contiguos y residen en el mismo directorio. Así que supongo que ambos están ubicados en un único bloque defectuoso.

Me gustaría intentar prevenir ditto de intentar copiar estos archivos por completo, con la esperanza de que esto evite que el disco falle y permita que la copia se complete (no me importa que falten un par de fotos/vídeos, y siempre puedo reconstruir la fototeca de iPhoto más adelante).

¿Hay alguna forma de instruir ditto para omitir una lista conocida de archivos?

Si no, aceptaría una solución alternativa ( cp basado en comandos o cualquier otro), siempre que pueda gestionar la copia de la manera ditto lo hace (preservando la propiedad, permisos y demás).

0 votos

Puedes crear una lista de archivos que ditto copiará. Piense en el comando find. véase man ditto --bom bom Copie sólo los archivos, enlaces, dispositivos y directorios que estén presentes en la lista de materiales especificada.

0 votos

Podrías probar mi copiador de archivos beta. Fue escrito pensando en tu situación. Lo he probado en una unidad que funciona, pero no en una unidad con problemas. Vea: discussions.apple.com/thread/

0voto

oddbjorn Puntos 56

He solucionado el problema arrancando en la unidad que fallaba y copiando en la unidad externa.

Sigo recibiendo los errores de E/S al intentar leer los mismos archivos, pero al menos la unidad no se expulsa (y el sistema no se bloquea), así que pude seguir adelante con ditto e ignorando/registrando archivos en error.


Por lo demás, la respuesta a mi pregunta original parece estar en rsync :

rsync -av --exclude='path1/to/exclude' --exclude='path2/to/exclude' source destination

o:

rsync -av --exclude-from=FILE source destination

Véase esta respuesta para más información.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X