Tenemos dos caminos. El primero es el directorio, el segundo es un directorio o un archivo.
/a/b/c
y /a/d/e.txt
La ruta relativa de la primera a la segunda será:
../../d/e.txt
¿Cómo calcular eso en la terminal de Linux? Para aquellos que preguntan "¿Qué es el caso de uso?", Se podría usar esto, por ejemplo, para crear muchos enlaces simbólicos relativos.
linux
command-line
shell
path
techraf
fuente
fuente
Respuestas:
Suponiendo GNU coreutils:
Para enlaces simbólicos,
ln
recientemente aprendió la--relative
opción.Para todo lo demás,
realpath
admite opciones--relative-to=
y--relative-base=
.fuente
Para mí, esta respuesta (que usa un oneliner de python) funciona perfectamente.
Probado con éxito en Linux (Kubuntu 14.04) y en Mac OSX, necesita Python 2.6.
fuente
Para no depender de
realpath
eso no está constantemente disponible y minimizar las dependencias, se me ocurrió esto (usando un poco de ayuda de esta respuesta ):Genera una subshell para encontrar la parte común de ambas rutas. Tal vez te guste, funciona para mí.
fuente