Tutorial de comandos de Linux readlink y realpath para principiantes (con ejemplos)
Ya hemos discutido el comando ln, que le permite crear enlaces entre archivos. Pero también existen herramientas que te permiten resolver estos vínculos.
En este tutorial, discutiremos los conceptos básicos de camino real y enlace de lectura comandos que son similares (si no iguales) en el sentido de que muestran enlaces simbólicos resueltos en la salida. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos aquí se probaron en Ubuntu 18.04 LTS y en Debian 10.
Comandos de Linux realpath y readlink
Como ya se mencionó al principio, los comandos realpath y readlink muestran la ruta resuelta para los enlaces simbólicos en la salida.
La siguiente es su sintaxis:
realpath [OPTION]... FILE...
readlink [OPTION]... FILE...
Y esto es lo que dicen sus respectivas páginas man:
Print the resolved absolute file name
print resolved symbolic links or canonical file names
Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una mejor idea de cómo funcionan estas herramientas.
Q1. ¿Cómo resolver la ruta usando realpath y readlink?
Simple, solo proporcione el archivo o la ruta como entrada. El siguiente ejemplo muestra estos dos comandos resolviendo un enlace simbólico.
Y así es como funcionan con las rutas:
Entonces puede ver que ambos comandos resolvieron con éxito los enlaces simbólicos en los dos casos.
Q2. ¿Cómo imprimir la ruta resuelta relativa a un directorio?
El comando realpath le permite hacer esto fácilmente. Por ejemplo, suponga que esto es lo que está tratando de hacer:
realpath /var/local/Downloadslink
Sin embargo, un requisito adicional es tener la salida de este comando relativa al directorio /home/himanshu. Luego, el siguiente es el comando que debe ejecutar:
realpath /var/local/Downloadslink --relative-to=/home/himanshu
Aquí está la salida:
Downloads
Entonces puede ver que la opción ‘–relative-to’ le permitió tener una salida relativa al directorio /home/himanshu.
Q3. ¿Cómo deshacerse de … en los caminos?
Puede haber ocasiones en las que expandir/resolver enlaces simbólicos no sea el objetivo, pero deshacerse de… en el camino sí lo es. El comando realpath le permite hacer esto.
Todo lo que tiene que hacer es usar la opción de línea de comando -s. Aquí hay un ejemplo:
realpath -s ../../var/local/Downloadslink
Y la siguiente es la salida de este comando:
/var/local/Downloadslink
Q4. ¿Cómo cambiar el carácter delimitador?
De forma predeterminada, la nueva línea se utiliza como carácter delimitador. Sin embargo, ambos comandos proporcionan una forma de tener NUL como delimitador.
La opción que necesita usar en ambos casos es -z.
realpath -z [FILE/PATH]
readlink -z [FILE/PATH]
Conclusión
Lo que hemos discutido aquí es solo un puñado de opciones/características que proporcionan estos comandos. Una vez que haya terminado de practicar estos, diríjase a las páginas man de readlink y realpath (aquí y aquí) para obtener más información sobre estas herramientas.