Links
De WikiMar
Page to be extended.
Per fer un link simbolic
ln -s Path_real Path_nou_fictici ln -s /usr/home/web642e5/www/htdocs/articles/papirs/ct /usr/home/web642e5/www/htdocs/ct/papirs
A summary page speaking about this (and many other interesting things) can be found at http://lpi.aluzina.org/wiki/101_4
Here a copy of this part:
104.7 Create and change hard and symbolic links
- Recordar: un hard link es símplemente dar un nombre alternativo a un fichero/inodo (un fichero tendrá varios nombres y ninguno es propiamente su nombre. Podéis ver cuántos enlaces hard tiene con "ls"). Un soft link es propiamente un enlace: un inodo que apunta a otro inodo.
- ln [-s] FICHERO NOMBRE_LINK
- Sin NOMBRE_LINK, crea en el directorio actual un enlace con nombre FICHERO.
- -f: cargarse NOMBRE_LINK si existe... ¡no recomendable para aquellos que como yo olvidan el orden de las cosas!
- -d: permite enlazar directorios con hard links (¡sólo lo puede hacer root!).
- -n, --no-dereference: por defecto un enlace se trata como aquello a lo que apunta, por lo tanto, un enlace a un directorio es un directorio, por lo que si queremos crear un enlace a un enlace que apunta a un directorio y que NOMBRE_LINK no piense que es el directorio padre del enlace que queremos crear en vez del nombre del link, debemos usar este flag.
- Los soft links pueden "atravesar" sistemas de ficheros, los hard links no. Los primeros incluso pueden apuntar a algo que no exista.
- Al hacer rm sobre un enlace, estamos desenlazando, pero nunca nos cargamos el fichero al que apunta (con los hardlinks, símplemente decrementamos la cuenta de links de un fichero).
- Ojo! Existe en el sistema link, unlink para hard links... es una versión menos tuneada que ln.
Casuística
ln -s destino nombre (destino es a lo que enlazo y nombre el nombre del enlace)
- Sobre <nombre>:
- Si <nombre> es un enlace:
- Si pasamos el flag -n, no lo dereferenciará y tratará <nombre> como un enlace.
- Si no pasamos el flag -n, lo dereferenciará y tratará <nombre> como un fichero o directorio.
- Si <nombre> existe y es un directorio (una vez dereferenciado): por defecto creará un enlace dentro de <nombre>.
- Si <nombre> existe y es un fichero (una vez dereferenciado): intentará sobrescribir el enlace.
- Si <nombre> es un enlace:
- Sobre <destino>:
- Si <destino> es un enlace:
- Si pasamos el flag -n, no lo dereferenciará y tratará <destino> como un enlace.
- Si no pasamos el flag -n, lo dereferenciará y tratará <destino> como un fichero o directorio.
- Si <destino> existe y es un directorio" (una vez dereferenciado): por defecto creará un enlace a un directorio.
- Si <destino> existe y es un fichero" (una vez dereferenciado): intentará sobrescribir el enlace.
- Si <destino> es un enlace:
- Sobre paths absolutos/relativos: si destino no es un path entero o relativo al directorio del nombre del enlace, creará un enlace inválido, a penas que fichero y y nombre residan en el mismo directorio.