Existe uma maneira correta de ligar /home/user/app/public
para /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_html
como resultado final.
fonte
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
fonte