Como copio um link simbólico?

41

Eu tenho um link simbólico para um arquivo em um diretório. Eu gostaria de ter esse mesmo link em outro diretório. Como copio um link simbólico?

Tentei cp o link simbólico, mas isso copia o arquivo para o qual aponta, em vez do próprio link simbólico.

Do utilizador
fonte
11
Será que cpo apoio CentOS -Pou --no-dereferenceswitch?
manatwork
@ manatwork: Obrigado, acabou de encontrar isso. Se você quiser publicá-lo como resposta, eu aceito.
Utilizador

Respostas:

54

Use cp -P(P maiúsculo) para nunca percorrer nenhum link simbólico e, em vez disso, copie o link simbólico.

Isso pode ser combinado com outras opções, como -Rcopiar uma hierarquia de diretórios - cp -RLpercorre todos os links simbólicos para diretórios, cp -RPcopia todos os links simbólicos como tais. cp -Rpode fazer um ou outro, dependendo das variantes do unix; O GNU cp(como encontrado no CentOS) é padronizado como -P.

Mesmo com -P, você pode copiar o destino de um link simbólico para um diretório na linha de comando adicionando um /no final: cp -RP foo/ barcopia a árvore de diretórios que fooaponta para.

GNU cptem uma conveniente -aopção que combina -R, -P, -pe um pouco mais. Ele faz uma cópia exata da fonte (na medida do possível), preservando a hierarquia de diretórios, links simbólicos, permissões, tempos de modificação e outros metadados.

Gilles 'SO- parar de ser mau'
fonte
3
Cuidado, uma vez copiado / movido, um link simbólico pode ficar quebrado (se a origem for um link simbólico para um caminho relativo).
Stéphane Chazelas
3
existe uma maneira de impedir a quebra dos links simbólicos se você estiver mudando para um diretório mais alto ou mais baixo?
Andrew Brown
Como uma observação: "GNU cp" não é a mesma coisa gcpque eu uso. gcp -Pestá quebrado, mesmo em 2019. (suspiro).
tgm1024 21/06
1

Verifique esta resposta https://superuser.com/a/315757/53590 para obter uma abordagem específica do CentOS sobre o problema. A questão toda pode ajudá-lo, mas a parte inferior é especificamente o CentOS.

Simon Hoare
fonte
11
Observe que outras pessoas podem escolher um pedido diferente do seu para listar as respostas. Além disso, a ordem pode mudar com o tempo. Por favor, poste um link direto para a resposta referida. (Clique no link “Compartilhar” abaixo essa resposta e copiar o link direto que aparece.)
manatwork