Usando 'rsync' como 'cp' más avanzado

3

Para copiar archivos grandes (y / o grandes cantidades de archivos), especialmente a través de discos, prefiero evitar el uso del Finder, ya que a menudo falla con algún mensaje de error sin sentido y / o queja sobre los permisos.

En lugar de eso, he estado considerando usar rsync o, más específicamente, la última versión de rsync disponible en Homebrew , que, a partir de hoy, es:

rsync  version 3.1.1  protocol version 31

Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, symtimes, no prealloc, file-flags

(Esas son las capacidades predeterminadas que utiliza Homebrew).

El problema es que rsync es irremediablemente complejo, y nunca estoy seguro si estoy usando los argumentos apropiados, o si hay otros que debería usar:

rsync \
    --8-bit-output \
    --acls \
    --backup \
    --devices \
    --exclude='.DS_Store' \
    --executability \
    --group \
    --human-readable \
    --inplace \
    --itemize-changes \
    --owner \
    --perms \
    --progress \
    --prune-empty-dirs \
    --recursive \
    --safe-links \
    --specials \
    --stats \
    --times \
    --update \
    --verbose \
    --xattrs \
    'foo' /path/to/destination/

Args No estoy seguro de si debería usarlo o no, principalmente porque no estoy 100% seguro de lo que hacen:

  • (una de las otras opciones para enlaces en lugar de '--safe-links')
  • --relativo
  • --sparse
  • --parcial

¿Alguna otra sugerencia?

    
pregunta TJ Luoma 09.07.2014 - 20:53

2 respuestas

2

A menos que tenga algunas necesidades específicas, eliminaría la mayoría de esas opciones y las mantendría simples: rysnc -aEv (en la versión predeterminada de OS X) o rsync -aXv (en la versión Homebrew).

Opciones

  • -a es el modo de archivo, lo que esencialmente significa preservar los metadatos (marcas de tiempo, permisos, etc.) y hacer una copia recursiva. Esto es lo que desea para sus operaciones de copia de seguridad o copia estándar.

  • -E / -X conserva los atributos extendidos ( a.k.a. forks de recursos). En el pasado, la versión rsync incorporada tenía una funcionalidad especial para cubrir las peculiaridades de HFS + a este respecto, pero las versiones predeterminadas más nuevas de rsync pueden ser mejoradas ahora. Me inclino por usar la versión incorporada a menos que tenga una razón específica para no hacerlo.

  • -v es la opción detallada, y simplemente facilita el seguimiento de lo que sucede si está ejecutando esto en una ventana de Terminal. Si va a ejecutarse en un script, puede eliminarlo.

A menos que sepa que los necesita, puede ignorar de manera segura la mayoría de las opciones que ya tiene. Algunos están duplicados por el comando de archivado y otros (como --inplace , que puede ralentizar las cosas y dejar el sistema de archivos en un estado incoherente) solo son necesarios para casos de borde específicos. Hágase un favor y mantenga las cosas simples: si tiene problemas específicos con las opciones que he enumerado, quizás enumérelas (en una pregunta aparte, si es necesario).

Aparte de eso, tener problemas para copiar a través del Finder es un poco de un IMO de bandera roja. Si bien puede que no siempre sea tan rápido como algunas opciones, no debería lanzar mensajes de error. Es posible que desee verificar / reparar su disco en la Utilidad de Discos.

    
respondido por el robmathers 09.07.2014 - 21:29
-1

podría usar ditto , que es un cp más avanzado y fue creado por Apple.

    
respondido por el Ginfuru 12.10.2014 - 03:30

Lea otras preguntas en las etiquetas