/Users/lukas
es un camino "absoluto". El líder /
representa el directorio raíz de su sistema de archivos.
lukas
es un camino "relativo". Como no está anclado a la raíz, significa "buscar esto en el directorio actual ". A menos que el directorio actual sea /Users
(o algún otro directorio con un lukas
en él), esto fallará.
Entonces, exploremos sus ejemplos, suponiendo que esté en /Users/lukas
:
$ cd Documents/
/Users/lukas/Documents
Ruta relativa dada => cambiar al directorio "Documentos" que está dentro /Users/lukas
.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Ruta absoluta dada => cambiar al directorio /Documents
.
$ pwd
/
Esto muestra que ahora ha cambiado el directorio de trabajo al directorio raíz /
(aunque cd
no se mostró el comando para hacerlo).
$ cd Users
/Users
Ruta relativa dada => cambiar al directorio "Usuarios" que está dentro /
.
$ cd /Users
/Users
Ruta absoluta dada => cambiar al directorio /Users
.
La clave cada vez es ese liderazgo /
. Con ella, el camino es absoluto. Sin ella, el camino es relativo. Esta regla no es ambigua porque todas las rutas absolutas comienzan con /
(porque siempre se llama al directorio raíz /
).
Aquí hay un pseudocódigo que describe libremente ese algoritmo:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
El argumento al que pasa cd
pasa por este algoritmo; el directorio al que termina cambiando es la ruta que devuelve el algoritmo.
Otras lecturas: