¿Crear un enlace simbólico de una carpeta a otra con nombres diferentes?

¿Crear un enlace simbólico de una carpeta a otra con nombres diferentes?

Tengo dos carpetas, una de las cuales es la raíz de mi servidor web. Quiero vincularlo a la carpeta de mi proyecto para poder mantener todo actualizado con Git.

Si intento hacer esto:

ln -s /home/user/project  /var/www/html

El sistema crea una carpeta llamadaproyectodentro de la carpeta html y lo vincula. ¿Hay alguna forma de vincularlo para que el directorio 'html' apunte al contenido deproyecto? ¿Tienen que ser el mismo nombre?

Nota: También necesito vincular varios archivos ocultos. ¿Puedo hacer esto usando ln?

Respuesta1

De man ln:

De forma predeterminada, cada destino (nombre del nuevo enlace) no debería existir ya.

Como ya tiene un directorio nombrado html, el enlace se creará dentro /var/www/htmlcon el nombre del destino, es decir project.

Si desea que un enlace simbólico /var/www/htmlapunte /home/user/project, no debe tener el directorio htmlpresente de antemano. Por lo tanto, solo debe tener /var/wwwy luego ejecutar lo siguiente para crear el enlace simbólico deseado (no haga esto a menos que esté seguro):

ln -s /home/user/project /var/www/html

Nota: si usa una barra diagonal (como en ln -s /home/user/project /var/www/html/), obtendrá un error: ln: target '/var/www/html' is not a directory: No such file or directory.

Aquí hay un ejemplo:

$ pwd
/home/user/test/askubuntu

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:16 foo

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 4
drwxrwxr-x 2 user user 4096 Mar 25 00:17 foo

$ cd foo/
$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:17 bar -> /home/user/test/bar

$ cd ..
$ rm -r foo/

$ ls -l
total 0

$ ln -s /home/user/test/bar /home/user/test/askubuntu/foo

$ ls -l
total 0
lrwxrwxrwx 1 user user 25 Mar 25 00:18 foo -> /home/user/test/bar

Y sí, puedes crear enlaces simbólicos de archivos ocultos.

Respuesta2

Asegúrese de que el directorio html no esté creado en /var/www/.

El comando entonces es:ln -s -T /home/user/project /var/www/html

información relacionada