GNU/Linux >> Tutoriales Linux >  >> Linux

Uso de / al usar cd

Este es el comportamiento estándar de Unix.

El / al comienzo de la ruta representa la raíz del disco (o el nivel inicial/superior del árbol del sistema de archivos). Como Documents no está fuera de la raíz, /Documents no se puede encontrar.

/Users está fuera del directorio raíz, por lo que este problema no ocurre.

Podrías usar cd /Users/lukas/Documents para cambiar a ese camino.

Alternativamente, podría usar direccionamiento relativo. Los sistemas de archivos basados ​​en Unix tienen 2 directorios especiales:

  • . que significa "este directorio",
  • .. lo que significa el directorio principal.

Si estás en /Users/lukas , cd ./Documents te llevaría al lugar correcto.

Supongamos que estabas en /Users/Lukas/Documents y quería ir a /Users/Janes/Documents , podría emitir un comando cd ../../Janes/Documents - usando .. te haría retroceder un nivel, por lo que lo harías dos veces, antes de ir a la nueva ruta relativa.


/Users/lukas es un camino "absoluto". El / principal 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 actual directorio". A menos que el directorio actual sea /Users (o algún otro directorio con un lukas en él), esto fallará.

Entonces, exploremos sus ejemplos, asumiendo que está en /Users/lukas :

$ cd Documents/
/Users/lukas/Documents

Ruta relativa dada => cambiar al directorio "Documentos" que está dentro de /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 el cd no se mostró el comando para hacer esto).

$ cd Users
/Users

Ruta relativa dada => cambiar al directorio "Usuarios" que está dentro de / .

$ cd /Users
/Users

Ruta absoluta dada => cambiar al directorio /Users .

La clave cada vez es que lleva / . Con él, el camino es absoluto. Sin ella, el camino es relativo. Esta regla no es ambigua porque todas las rutas absolutas comienzan con / (porque el directorio raíz siempre se llama / ).

Aquí hay un pseudocódigo que describe vagamente ese algoritmo:

MakePathAbsolute(path):
   if <path> starts with '/'
      return <path>
   else
      return <current directory>/<path>

El argumento que pasas a cd pasa por este algoritmo; el directorio al que termina cambiando es la ruta que devuelve el algoritmo.

Lectura adicional:

  • Tutorial de directorios y archivos Unix
    José L. Zachary
    "Introducción a la Programación Científica"

Linux
  1. ¿Cuándo usar Nohup?

  2. ¿Por qué no puedo usar Cd en un script Bash?

  3. ¿Una forma rápida de incluir una ruta de directorio al llamar a Mv?

  4. ¿Cd a un directorio de nombre desconocido en una ruta conocida?

  5. Contando el número de archivos en un directorio usando C

Cómo usar Rsync

Linux:agregar un directorio a PATH

Creando un nuevo directorio en C

Agregue un script bash a la ruta

¿Qué sistema de archivos usar cuando se usa tanto Windows como Linux?

comando de linux encontrado pero no encontrado al usar sudo