Cómo crear un enlace simbólico

Un enlace simbólico, también conocido como enlace suave o enlace simbólico, es un archivo especial que apunta a otro archivo o directorio mediante una ruta absoluta o relativa. Los enlaces simbólicos son similares a los accesos directos de Windows y son útiles cuando necesita acceder rápidamente a archivos o carpetas con rutas largas.

Los enlaces simbólicos no contienen datos en el archivo de destino, ya que los enlaces solo apuntan a diferentes archivos en el sistema de archivos, pero eliminar el archivo de destino hará que los enlaces simbólicos queden inutilizables.

Siga el tutorial a continuación para aprender cómo crear un enlace simbólico a archivos y directorios.

Crear un enlace simbólico a un archivo

Cree un enlace simbólico utilizando la siguiente sintaxis.

                      
                        ln -s /path/to/file symlink_name
                      
                    

Creé dos enlaces simbólicos usando rutas relativas y absolutas.

  • Ruta absoluta : una ruta que comienza desde el directorio raíz (que comienza con /) hasta la ubicación del archivo. Toda la información que se necesita para encontrar el archivo específico se encuentra en la cadena de ruta.
  • Camino relativo : Una ruta desde la ubicación actual. Esta ruta comienza con un punto que representa el directorio actual o dos puntos para el directorio por encima de la ubicación actual.

El símbolo utilizado para significar un vínculo simbólico es el -> símbolo. Este símbolo apunta a un archivo oa la ruta de un archivo si se encuentra en una ubicación diferente. Los enlaces simbólicos tienen permisos lrwxrwxrwx, que son permisos predeterminados para enlaces simbólicos y no se pueden cambiar.

Muestra el contenido de la carpeta actual usando el comando ls, que muestra los dos enlaces simbólicos que creé. El enlace simbólico sym1 y sym2 apuntan al mismo archivo.

                      
                        [[email protected] symlinks]$ ln -s file.txt sym1
[[email protected] symlinks]$ ln -s /home/mstevens/symlinks/file.txt sym2

[[email protected] symlinks]$ ls -l
total 4
-rw-rw-r-- 1 mstevens mstevens  7 May 23 12:23 file.txt
lrwxrwxrwx 1 mstevens mstevens  8 May 23 12:23 sym1 -> file.txt
lrwxrwxrwx 1 mstevens mstevens 32 May 23 12:24 sym2 -> /home/mstevens/symlinks/file.txt
                      
                    

Aquí podemos usar el comando cat para generar el contenido de cada archivo. Como se muestra a continuación, el contenido es el mismo.

                      
                        [[email protected] symlinks]$ cat file.txt; cat sym1; cat sym2
This is my file.txt
This is my file.txt
This is my file.txt
                      
                    

Crear un enlace simbólico a un directorio

Para crear enlaces simbólicos a un directorio, podemos usar el mismo comando para crear enlaces simbólicos a un archivo.

                      
                        [[email protected] symlinks]$ mkdir -p folder/123/abc
[[email protected] symlinks]$ ln -s folder/123/abc/ abc

[[email protected] symlinks]$ ls -l
total 4
lrwxrwxrwx 1 mstevens mstevens   15 May 23 12:53 abc -> folder/123/abc/
drwxrwxr-x 3 mstevens mstevens 4096 May 23 12:55 folder
                      
                    

Luego podemos acceder a la carpeta abc a través de la ruta folder/123/abc/ y el enlace simbólico abc.

En el example a continuación, creamos un archivo dentro de la carpeta abc. Al verificar la carpeta abc, podemos usar el comando pwd y ver que la ruta es diferente al verificar el directorio actual.

                      
                        [[email protected] symlinks]$ touch folder/123/abc/File1

//accessing through folder
[[email protected] symlinks]$ cd folder/123/abc/

[[email protected] abc]$ ls -l
total 0
-rw-rw-r-- 1 mstevens mstevens 0 May 23 12:58 File1

[[email protected] abc]$ pwd
/home/mstevens/symlinks/folder/123/abc

//accessing through symlink
[[email protected] symlinks]$ cd abc/

[[email protected] abc]$ ls -l
total 0
-rw-rw-r-- 1 mstevens mstevens 0 May 23 12:58 File1

[[email protected] abc]$ pwd
/home/mstevens/symlinks/abc
                      
                    

Los piratas informáticos suelen explotar la funcionalidad de los enlaces simbólicos para acceder a partes del servidor a las que no pueden acceder los usuarios habituales. La desactivación de los enlaces simbólicos en los servidores Apache se puede realizar agregando el siguiente comando en .htaccess o en el archivo de configuración de Apache.

                      
                        Options -FollowSymlinks
                      
                    

Nginx tiene su propia directiva para deshabilitar los enlaces simbólicos.

                      
                        disable_symlinks on
                      
                    

CloudLinux tiene su forma de deshabilitar los enlaces simbólicos a los archivos/carpetas con diferentes propietarios.

                      
                        fs.enforce_symlinksifowner=1
                      
                    

Para eliminar enlaces simbólicos, podemos usar uno de dos comandos: rm o unlink.

                      
                        rm /path/to/symlink
                      
                    
                      
                        unlink /path/to/symlink
                      
                    

Ambos comandos eliminarán los enlaces simbólicos, pero desvincular es el comando más seguro. Tenga cuidado al utilizar el comando rm -r, ya que se eliminará el contenido de la carpeta a la que apunta el enlace simbólico.

A continuación se muestra la forma correcta de eliminar un enlace simbólico.

                      
                        [[email protected] symlinks]$ ll
total 4
lrwxrwxrwx 1 mstevens mstevens   15 May 23 12:53 abc -> folder/123/abc/
drwxrwxr-x 3 mstevens mstevens 4096 May 23 12:55 folder
[mstev[email protected] symlinks]$ unlink abc
[[email protected] symlinks]$ ls -l
total 4
drwxrwxr-x 3 mstevens mstevens 4096 May 23 12:55 folder
                      
                    

Evite eliminar un enlace simbólico incorrectamente, como se muestra a continuación.

                      
                        //Contents of abc folder
[[email protected] symlinks]$ ls -l abc/
total 0
-rw-rw-r-- 1 mstevens mstevens 0 May 24 16:30 File1

[[email protected] symlinks]$ rm -r abc/
rm: cannot remove 'abc/': Not a directory

//checking contents again
[[email protected] symlinks]$ ls -l abc/
total 0
[[email protected] symlinks]$
                      
                    

Conclusión

Los enlaces simbólicos le permiten acceder a archivos o directorios específicos desde su ubicación actual, que es similar a cómo usamos los accesos directos del escritorio. Si ya no se requiere un enlace simbólico, se puede eliminar, pero tenga en cuenta el comando que se utiliza para evitar la eliminación accidental de archivos importantes.

Liquid Web ofrece muchas soluciones de alojamiento diferentes. ¿No estás seguro de cuál es el mejor plan? ¡Póngase en contacto con nuestro equipo de ventas para ayudarlo a comenzar hoy!

Related Posts