Links

De WikiMar
Dreceres ràpides: navegació, cerca

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.
  • 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.
  • 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.