link simbólico para o diretório já existente

12

Existe uma maneira correta de ligar /home/user/app/publicpara /home/user/public_html, considerando o fato de que o destino já existe?

Se sim ln -s /home/user/app/public /home/user/public_html, acabo tendo /home/user/public_html/public.

Eu acho que seria possível também inverter a ação como ln -s /home/user/public_html /home/user/app/public, no entanto, não tenho certeza de como evitar /home/user/app/public/public_htmlcomo resultado final.

user2094178
fonte

Respostas:

13

Deixe-me entender seu problema da maneira certa

Sua fonte é /home/user/public_htmle suponho que tenha arquivos lá. E você deseja criar um link para este diretório diretamente /home/user/app/public. Dessa forma, você poderia fazer algo parecido ls /home/user/app/publice ver os arquivos existentes /home/user/public_html.

Se isso estiver correto, sua fonte é /home/user/public_htmle o destino é /home/user/app/public. O comando apropriado é este:

ln -s /home/user/public_html /home/user/app/public

Apenas certifique-se de que /home/user/app/publicnão seja um diretório ou arquivo válido, digite o comando

Lucio
fonte
3
É antigo, mas acho que o usuário perguntou exatamente como fazer o que você descreve, mas, no caso de / home / user / app / public já existir (que é exatamente a ressalva que você mencionou no final do seu responda). Portanto, o IMHO não responde à pergunta original, pois o usuário queria saber exatamente como lidar com um destino já existente (por exemplo, como substituí-lo pelo link simbólico, sem precisar excluí-lo antes de criar o link simbólico).
Jotadepicas
Experimente -T opção :)
Milkmannetje
2

Se entendi sua pergunta corretamente, você queria saber como lidar com destinos já existentes. Se for esse o caso, existem dois cenários possíveis.

1) o destino existente é um arquivo. Se for esse o caso, você pode forçar a criação do link simbólico com "-f"

2) o destino existente é um diretório. Se for esse o caso, isso depende da sua implementação atual do comando ln. Ele poderia ter o argumento "-n" disponível, o que provoca link simbólico para os diretórios ser tratada adequadamente, em vez de duplicar-los como você diz.

Referência: /unix/207294/create-symlink-overwrite-if-one-exists

jotadepicas
fonte
Eu me pergunto por que o downvote sem um comentário: stackoverflow.com/help/privileges/vote-down
jotadepicas