enlace simbólico al directorio ya existente

12

¿Hay una manera adecuada para vincular /home/user/app/publica /home/user/public_html, teniendo en cuenta el hecho de que el destino ya existe?

Si lo hago ln -s /home/user/app/public /home/user/public_html, termino teniendo /home/user/public_html/public.

Supongo que también sería posible invertir la acción como ln -s /home/user/public_html /home/user/app/public, sin embargo, no estoy seguro de cómo evitarlo /home/user/app/public/public_htmlcomo resultado final.

usuario2094178
fuente

Respuestas:

13

Déjame entender tu problema de la manera correcta

Su fuente es /home/user/public_htmly supongo que tiene archivos allí. Y desea hacer un enlace a este directorio directamente en /home/user/app/public. De esta manera, podría hacer algo así ls /home/user/app/publicy ver los archivos que existen /home/user/public_html.

Si esto es correcto, entonces su fuente es /home/user/public_htmly el objetivo es /home/user/app/public. El comando correcto es este:

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

Solo asegúrese de que /home/user/app/publicno sea un directorio o archivo válido, ingrese el comando anteriormente.

Lucio
fuente
3
Este es uno antiguo, pero creo que el usuario preguntó exactamente cómo hacer lo que usted describe, pero, en el caso de que / home / user / app / public ya exista (que es exactamente la advertencia que menciona al final de su responder). Entonces, en mi humilde opinión, esto no responde a la pregunta original, ya que el usuario quería saber con precisión cómo tratar con un objetivo ya existente (es decir, cómo anularlo con el enlace simbólico, sin tener que eliminarlo antes de crear el enlace simbólico).
jotadepicas
Pruébalo -T opción :)
Milkmannetje
2

Si entiendo tu pregunta correctamente, querías saber cómo lidiar con objetivos ya existentes. Si ese es el caso, hay dos escenarios posibles.

1) el objetivo existente es un archivo. Si este es el caso, puede forzar la creación del enlace simbólico con "-f"

2) el objetivo existente es un directorio. Si este es el caso, entonces depende de su implementación actual del comando ln. Se podría tener el argumento "-n" disponibles, lo que hace a los directorios de enlaces simbólicos ser manejados adecuadamente, en lugar de duplicarlos como usted dice.

Referencia: /unix/207294/create-symlink-overwrite-if-one-exists

jotadepicas
fuente
Me pregunto por qué el
voto negativo