¿Cómo puedo copiar archivos de forma recursiva sin sobrescribir los permisos existentes?

9

Cuando copio archivos de un directorio a otro, los permisos del directorio se restablecen (por ejemplo, de 0755 a 0775), y esto causa problemas, lo que me obliga a volver y restablecer manualmente los permisos del directorio. Actualmente estoy haciendocp -r /source/directory /destination/directory

Quiero copiar todos los archivos y nuevos directorios, pero no sobrescribir los permisos de los directorios existentes.

Eva
fuente

Respuestas:

5

Para preservar los enlaces, puede usar cp(página de manual para cp ) con el -dindicador, que es equivalente a --no-dereference --preserve=links.

Para combinar esto con las banderas -py -R, puede usar la bandera de archivo -a.

Val
fuente
7

Agregar bandera -p

cp -pR /source/dir /dest/dir

De man cp:

-p     same as --preserve=mode,ownership,timestamps
vfbsilva
fuente
2

Mi ~/.bashrcha sido modificado para contener

alias cp='cp -i --preserve=all'

Esto significa que cuando lo uso cp, también aparecerá antes de sobrescribir ( -i) y preservar todo (es decir, modo, propiedad, marcas de tiempo y, si es posible, atributos adicionales: contexto, enlaces, xattr).

Siempre puede cambiarlo a solo en modelugar de allsi lo desea, pero me gusta tener este alias para cambiar los valores predeterminados de cp.

Gavilán
fuente