GNU/Linux >> Tutoriales Linux >  >> Linux

¿Explicar las opciones del comando Readlink?

¿Puede alguien explicarme las siguientes opciones de readlink? comando en lenguaje sencillo:

   -f, --canonicalize
      canonicalize  by  following  every symlink in every component of
      the given name recursively; all  but  the  last  component  must
      exist

   -e, --canonicalize-existing
      canonicalize  by  following  every symlink in every component of
      the given name recursively, all components must exist

   -m, --canonicalize-missing
      canonicalize by following every symlink in  every  component  of
      the  given  name recursively, without requirements on components
      existence

Respuesta aceptada:

Creo que se explica por sí mismo, así que realmente no sé qué parte te suena ambigua...
Veamos con un ejemplo:

–canonicalizar

$ mkdir /tmp/realdir
$ mkdir /tmp/subdir
$ ln -s /tmp/realdir /tmp/subdir/link
$ cd /tmp

$ readlink -f ./subdir/link/nonexistentdir/
/tmp/realdir/nonexistentdir

$ readlink -f ./subdir/link/nonexistentfile.txt
/tmp/realdir/nonexistentfile.txt

Cualesquiera que sean las opciones, readlink will:
– traducir la ruta relativa a la ruta absoluta
– traducir el nombre del enlace simbólico a la ruta real

Y como puedes ver arriba, con -f , readlink no le importa si la última parte de esta ruta (aquí nonexistentfile.txt ) existe o no.

Si no existe otra parte de esta ruta, readlink no generará nada y tendrá un código de retorno diferente a 0 (lo que significa que ocurrió un error). Ver:

$ readlink -f /tmp/fakedir/foo.txt
$ echo $?
1

–canonicalizar-existente

Si intenta lo mismo con -e :

$ readlink -e ./subdir/link
/tmp/realdir

$ readlink -e ./subdir/link/nonexistentfile.txt
$ echo $?
1

Con -e , en caso de que alguno de los componentes de la ruta no exista, readlink no generará nada y tendrá un código de retorno diferente a 0.

–canonicalize-missing

-m opción es lo contrario de -e . No se realizará ninguna prueba para verificar si existen los componentes de la ruta:

$ readlink -m ./subdir/link/fakedir/fakefile
/tmp/realdir/fakedir/fakefile

$ ln -s /nonexistent /tmp/subdir/brokenlink

$ readlink -m ./subdir/brokenlink/foobar
/nonexistent/foobar

Linux
  1. Introducción al comando de alternativas en Linux

  2. Una introducción al comando diff

  3. ¿Cómo usar el comando basename?

  4. El comando de localización en Linux

  5. Opciones de comando grub-install

Explicación del comando tar de Linux

Domina la línea de comandos de Linux

El comando elegir en Linux

El comando del temporizador en Linux

Comando Linux DF – Las 3 opciones más utilizadas

Explicar el uso del comando tee con ejemplos