Comando.- ln

El comando ln crea enlaces hacia ficheros.

Tipos de enlaces:

  • Enlaces duros.
  • Enlaces suaves Son algo así como el equivalente de los accesos directos de Windows.
  • Enlaces relativos son como los enlaces de una página que apuntan a partes de ella.

Nota.- En el archivo /etc/bash.bashrc se pueden establecer alias para todos los usuarios (ver comando alias) agregandolos al final del archivo, podemos hacer que cualquier comando tome las opciones que queramos sin tener que utilizar toda la línea. Ejemplo: alias ln='ln --symbolic' hace que cuando utilicemos ln todos los enlaces generados van a ser simbólicos.

Ejemplos:

a) Sintaxis básica

ln [OPCIÓN]… [-T] ORIGEN LINK_NOMBRE

Crea un enlace apuntando al objetivo TARGET llamado LINK_NOMBRE. EL enlace puede tener el nombre que sea y se puede poner en cualquier ruta sin que necesitemos entrar a ella primero.

Ejemplo:

Creamos el archivo Enlace-de-prueba-1.txt en el escritorio con el comando touch y hacemos un enlace suave con el comando ln y la opción -s. El enlace vamos a poner ENLAZADO y va a estar dentro de documentos.

touch ~/Desktop/Enlace-de-prueba-1.txt; ln -s ~/Desktop/Enlace-de-prueba-1.txt ~/Documents/ENLAZADO

 

b) Crea un enlace apuntando al objetivo TARGET en el directorio actual. El enlace queda con el mismo nombre que el origen.

ln [OPCIÓN]… ORIGEN

Ejemplo:

Creamos el archivo Enlace-de-prueba-2.txt en el escritorio con el comando touch, entramos a descargas con el comando cd y creamos un enlace suave con el comando ln y la opción -s. Como ya estabamos dentro de la carpeta de descagas no hizo falta que escribamos el nombre del enlace o directorio. El enlace va a tener el mismo nombre que el origen.

touch ~/Desktop/Enlace-de-prueba-2.txt; cd ~/Downloads; ln -s ~/Desktop/Enlace-de-prueba-2.txt

 

c) Crea un enlace a cada objetivo ORIGEN en la carpeta DIRECTORIO. Pueden ser varios ficheros los que se linkean a la vez.

ln [OPCIÓN]… ORIGEN… DIRECTORIO

Ejemplo:

Para empezar los enlaces van a ser suaves, por eso usamos la opción -s (--symbolic). Hacemos un directorio que se llame FILES en el escritorio y dentro de él los archivos file-1.txt, file-2.txt y file-3.txt. También creamos una carpeta en descargas con el nombre de ACCESOS y linkeamos los archivos que acabamos de crear dentro de él. El comando mkdir crea directorio y el comando touch entre otras cosas crea archivos cuando no existen. Los puntos y comas (;) nos permiten dar varias ordenes en una sola línea.

mkdir ~/Desktop/FILES; touch ~/Desktop/FILES/file-1.txt ~/Desktop/FILES/file-2.txt ~/Desktop/FILES/file-3.txt; mkdir ~/Downloads/ACCESOS; ln -s ~/Desktop/FILES/file-1.txt ~/Desktop/FILES/file-2.txt ~/Desktop/FILES/file-3.txt ~/Downloads/ACCESOS

 

d) Crea un enlace a cada objetivo ORIGEN en el directorio DIRECTORIO. Por la opción -t se puede poner primero la carpeta donde van a estar los enlaces.

ln [OPCIÓN]… -t DIRECTORIO ORIGEN…

Ejemplo:

La opción -s en el comando ln es para que los enlaces sean suaves y la opción -t para poder escribir primero el directorio destino y después de él la(s) ruta(s) de los fichero(s) que vamos a enlazar. Hacemos un directorio que se llame ARCHIVOS en el escritorio y dentro de él los archivos fichero-1.txt, fichero-2.txt y fichero-3.txt. También creamos una carpeta en descargas con el nombre de ENLACES y linkeamos los archivos que acabamos de crear dentro de él. El comando mkdir crea directorio y el comando touch entre otras cosas crea archivos cuando no existen. Los puntos y comas (;) nos permiten dar varias ordenes en una sola línea.

mkdir ~/Desktop/ARCHIVOS; touch ~/Desktop/ARCHIVOS/fichero-1.txt ~/Desktop/ARCHIVOS/fichero-2.txt ~/Desktop/ARCHIVOS/fichero-3.txt; mkdir ~/Downloads/ENLACES; ln -st ~/Downloads/ENLACES ~/Desktop/ARCHIVOS/fichero-1.txt ~/Desktop/ARCHIVOS/fichero-2.txt ~/Desktop/ARCHIVOS/fichero-3.txt

Opciones:

Los argumentos obligatorios para las opciones largas son también obligatorios para las opciones cortas.

--backup[=CONTROL] crea una copia de seguridad de cada fichero de destino que ya exista

-b como --backup pero no acepta ningún argumento

-d, -F, --directory permite al superusuario intentar crear un enlace duro entre directorios (note: puede que falle por restricciones del sistema, incluso para el superusuario)

-f, --force borra los ficheros destino que ya existan

-n, --no-dereference trata un destino que sea un enlace simbólico a un directorio como si fuera un fichero normal

-i, --interactive pregunta si se borran los destinos

-s, --symbolic crea enlaces simbólicos en vez de enlaces duros

-S, --suffix=SUFIJO reemplaza el sufijo de respaldo habitual

-t, --target-directory=DIRECTORIO especifica el DIRECTORIO en el que se crearán los enlaces

-T, --no-target-directory trata al LINK_NAME como un archivo normal

-v, --verbose detallada del nombre de cada archivo enlazado

--help muestra esta ayuda y finaliza

--version informa de la versión y finaliza

El sufijo de respaldo es '~', a menos que se establezca con --suffix o con SIMPLE_BACKUP_SUFFIX. El método de control de versión se puede seleccionar con la opción --backup o a través de la variable de entorno VERSION_CONTROL. Estos son los valores:

none, off nunca realiza copias de seguridad (incluso si se da la opción --backup)

numbered, t crea copias de seguridad numeradas

existing, nil numeradas si existen copias de seguridad numeradas, simples en caso contrario

simple, never siempre crea copias de seguridad simples

 

http://www.gnu.org/software/coreutils/manual/html_node/ln-invocation.html
http://es.wikipedia.org/wiki/Ln_%28Unix%29
http://es.wikipedia.org/wiki/Enlace_simb%C3%B3lico
http://es.wikipedia.org/wiki/Enlace_duro
http://es.hscripts.com/tutoriales/linux-commands/ln.html
http://www.duiops.net/curso/renl.htm

 

Anuncios

4 thoughts on “Comando.- ln

    1. Supongo que estas en alguna distro de linux. Si estas en windows este no es el lugar para preguntar, hace tanto que no lo uso que no me acuerdo de nada.

      Uso el Ubuntu, cuando instalo en ingles las rutas de mi /home son con un nombre y cuando es en español es con otro. Por ejemplo, cuando la instalación es en ingles es Desktop y cuando es en español la misma carpeta se llama Escritorio. Si estas copiando y pegando los ejemplos en tu terminal, y la ruta es diferente en tu computadora no van a funcionar.

      Prueba haciendo uno sencillo. Escoge cualquier archivo que tengas en tu computadora, copia su ruta y asigna donde quieres que quede el enlace.

      ln -s [Ruta del archivo a enlazar] [Ruta donde quieres tu acceso directo]

      Ejemplo.- Mi archivo esta en mi escritorio y se llama hola.jpg; quiero que quede en mis documentos con el hombre de hola.jpg. Tecleo en la terminal:

      ln -s ‘/home/travesuras/Desktop/hola.jpg’ ‘/home/travesuras/Documents/hola.jpg’

      Nota: Si el archivo origen no existe, el acceso directo nunca va a funcionar.

      Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s