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 cp
la implementación de UNIX, pero GNU cp
de 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