¿Cómo navego entre directorios en la terminal?

26

Soy nuevo en Linux y Ubuntu y he intentado cambiar a carpetas / directorios con cierta dificultad.

¿Podría alguien explicar por qué los siguientes comandos no pudieron cambiar a la carpeta / directorio de destino deseado?

sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 
sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 
sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$ cd Downloads 
bash: cd: Downloads: No such file or directory 
sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 
sharon@sharon:~/Documents$
n00b
fuente

Respuestas:

38

El sistema de archivos es GNU / Linux es como un árbol, excepto que la raíz está en la parte superior. :-) Entonces tienes una estructura como:

/
  bin/
  home/
    sharon/
      Documents/
      Downloads/
      fileA.txt
      fileB.jpg
  usr/
  var/

Si desea moverse dentro del árbol, una opción es usar rutas relativas. Si está dentro /home/sharon, entonces la escritura cd Downloadsfuncionará, porque Descargas es un elemento secundario inmediato de su directorio actual. Si está en la subcarpeta Documentsy desea cambiar el directorio ( cd) a Downloads, debe subir ( ..) y luego a Downloads. Entonces el comando correcto sería cd ../Downloads.

También podría ingresar una ruta absoluta. Entonces, la Downloadscarpeta es una subcarpeta de la sharoncual es una subcarpeta de la homecual es ... (usted tiene la idea :-)) Para que también pueda ingresar cd /home/sharon/Downloadsdonde sea que esté en el sistema de archivos.

  • ~siempre se refiere al directorio de inicio del usuario actual ( /home/sharonen su caso). Si ingresas cd ~/Downloads, aterrizarás en tu Downloadscarpeta.

  • .se refiere al directorio actual, por lo que cd ./Downloadses más o menos equivalente a cd Downloads.

  • .. significa "directorio padre".

  • / al comienzo de la ruta del archivo se refiere al directorio raíz.

Lo siguiente bueno es la expansión de pestañas. Si ingresa cd ~/DowTab(el último es presionar la tecla Tabulador), el bash lo expande automáticamente cd ~/Downloads.

Como dijeron los demás, GNU / Linux distingue entre mayúsculas y minúsculas. Entonces hace una diferencia si ingresas Home, hOmeo home. Además, espero que vean ahora que hay una diferencia entre /homey home. El primero se direcciona absoluto mientras que el último es relativo a su directorio actual.

qbi
fuente
1
@ qbi: Wow, eres increíble. Me encanta su explicación detallada sobre cómo navegar entre carpetas / directorios. ¿Eres profesor o profesor en una institución educativa? La mayoría de los tipos de TI saben muchas cosas de TI, pero dividir los conceptos en trozos manejables y "digeribles" para que los novatos puedan entender está al alcance de un puñado de chicos talentosos como tú.
n00b
2
@ n00b Si encuentra útil esta respuesta, puede "aceptarla" haciendo clic en la V a la izquierda de la misma.
Revetahw dice Reinstate Monica
8
sharon@sharon:~$ cd Home 
bash: cd: Home: No such file or directory 

La pequeña cedilla ~ indica que ya está en su directorio / home / sharon. Cuando solicita 'cd Home', el terminal busca / home / sharon / Home. No hay ninguno.

sharon@sharon:~$ cd /Home 
bash: cd: /Home: No such file or directory 

Ahora está pidiendo, dada la barra diagonal, ir a un directorio sobre la ubicación actual; eso es / home / Home. No hay ninguno.

sharon@sharon:~$ cd Documents 
sharon@sharon:~/Documents$

¡Éxito!

sharon@sharon:~/Documents$ cd /Downloads 
bash: cd: /Downloads: No such file or directory 

No estoy muy seguro de dónde es exactamente esto. Si desea cambiar de / home / sharon / Documents a / home / sharon / Downloads, intente:

cd ~/Downloads

Si desea ir directamente a su directorio de inicio, es decir / home / sharon, simplemente haga lo siguiente:

cd

También puedes ir Paso atrás con

cd ..

Y puede imprimir el directorio en el que está trabajando (imprimir directorio de trabajo)

pwd
chili555
fuente
@ chili555: Muchas gracias por ayudar a los novatos como yo. Feliz Navidad para ti y tus seres queridos.
n00b
2
La barra diagonal indica una ruta relativa a la raíz, no una por encima del directorio actual. Eso sería../
psusi
3

El comando le dice por qué: no existe tal directorio.

Los nombres de archivo distinguen entre mayúsculas y minúsculas, por lo que es / home, no / Home. Sin una barra inclinada inicial, se supone que es relativo al directorio actual, y el directorio de Descargas no está en ~ / Documentos, ni está en /, sino en su directorio de inicio, que ~es un acceso directo, por lo que es ~ / Documentos.

psusi
fuente
@ psusi: Gracias a ti también. Feliz Navidad para ti y tus seres queridos.
n00b
@ psusi: ¿Qué significa la barra diagonal principal?
n00b
@ psusi: ¿Qué significa ./ <nombre de archivo>?
n00b
@noob, /significa comenzar desde el directorio raíz y .significa el directorio actual.
psusi
0

Tengo que responder sobre esto, porque no puedo comentar sobre las respuestas.

¿Qué significa la barra diagonal principal? - n00b

significa que lo delgado de lo que estás hablando es un directorio, no un archivo. Los archivos no tienen que tener terminaciones de archivo como en Windows, por ~/thisIsAFilelo que sería un archivo en su directorio de inicio pero ~/thisIsAFile/sería un directorio / una carpeta.

¿Que significa? - n00b

Eso significa que el archivo al que desea acceder está en su directorio actual.

Otros consejos útiles:

Puede volver a una carpeta con

cd ..

Y puede obtener la ruta en la que se encuentra (imprimir el directorio de trabajo)

pwd
a2r
fuente
@ a2r: Gracias por la aclaración. No sabía que los archivos no tienen extensiones de archivo como en Microsoft Windows. ¿Los programas también tienen extensiones de archivo en Ubuntu?
n00b
Generalmente no, al sistema no le importa qué terminaciones tiene un archivo, si está marcado como ejecutable (google about chmod), entonces puede ejecutarlo como un programa. También hay una variable global (google al respecto) llamada $ PATH, hay una vista de directorios guardados (puede ver cuáles hay echo $PATH). Y cuando intentas ejecutar un programa como el que escribes gediten la terminal. Su sistema busca tirar las carpetas en $ PATH y busca gedit.
a2r
1
Eso sería una barra inclinada, no una barra inclinada. También debe tener un espacio allí antes del ...
psusi
@ psusi: lo siento. Estoy un poco confundido aquí. ¿Qué es un corte final? barra inclinada? Ejemplos por favor? Gracias por adelantado.
n00b