Copia Unix (cp) sin enlaces simbólicos

Copia Unix (cp) sin enlaces simbólicos

Quiero copiar mis archivos pero convertir los enlaces simbólicos en enlaces físicos (es decir, el archivo real). ¿Cómo puedo hacer esto?

Aquí está mi código (que no funciona):

cp -RL ${FROM_DIR} ${TO_DIR}

Nota: esto es para propósitos de Xcode: no se permiten enlaces simbólicos en una compilación.

¡Gracias!

EDITAR:

El problema es la forma en que elimino los archivos primero: no elimina los enlaces simbólicos existentes.

rm -RLf "${FROM_DIR}/*"

Respuesta1

No estoy seguro acerca de cpla implementación de UNIX, pero GNU cpde forma predeterminada no conserva los enlaces simbólicos. Y los enlaces físicos no son lo mismo que los archivos. De forma predeterminada, cp crea archivos/directorios a partir de enlaces simbólicos. Probablemente no necesite la opción -L para sus propósitos. Si realmente necesita esto, puede usar la opción --no-preserve=links.

Referirse a man cp:

   --preserve[=ATTR_LIST]
          preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all

   --no-preserve=ATTR_LIST
          don't preserve the specified attributes

información relacionada