Quero copiar meus arquivos, mas converter os links simbólicos em links físicos (ou seja, o arquivo real). Como posso fazer isso?
Aqui está o meu código (que não está funcionando):
cp -RL ${FROM_DIR} ${TO_DIR}
Nota: isto é para fins de Xcode - links simbólicos não são permitidos em uma compilação.
Obrigado!
EDITAR:
O problema é a maneira como removo os arquivos primeiro - não estou removendo os links simbólicos existentes.
rm -RLf "${FROM_DIR}/*"
Responder1
Não tenho certeza sobre cp
a implementação do UNIX, mas o GNU cp
por padrão não preserva links simbólicos. E links físicos não são a mesma coisa que arquivos. Por padrão, cp cria arquivos/diretórios a partir de links simbólicos. Provavelmente você não precisa da opção -L para seus propósitos. Se você realmente precisa disso, você pode usar a opção --no-preserve=links.
Referir-se 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