¿Cuál es la diferencia entre los comandos "cd \" y "cd /" en la terminal de ubuntu?

10

Al dar cd \, obtengo el >símbolo mientras cd /cambio el ~signo en mi directorio a /.

También el lscomando me muestra directorios como dev, root, usren el caso de cd /.

ShailyGarg
fuente

Respuestas:

15

En Bash, su caparazón, la \(barra invertida) denota un carácter de escape. Esto debería usarse en casos en los que desee escapar de caracteres como espacios, comillas y otros caracteres significativos para la sintaxis de shell, pero desea que se propague como datos al comando que está ejecutando. Al tener esto como el último personaje en la línea, está escapando de la nueva línea y Bash está esperando más información (varias líneas).

/es solo una barra diagonal (que significa separador de directorio ). Con solo /esto significa la raíz, por ejemplo, ls /enumera el contenido de la raíz. Al cambiar el directorio de trabajo a /, el indicador en su shell también cambia de ~(abreviatura de directorio de inicio, por ejemplo /home/gert/) al directorio en el que se encuentra ( /).


Manifestación

$ touch a filename with spaces
$ ls -l
total 0
-rw-rw-r-- 1 gert gert 0 Jul  1 02:33 a
-rw-rw-r-- 1 gert gert 0 Jul  1 02:33 filename
-rw-rw-r-- 1 gert gert 0 Jul  1 02:33 spaces
-rw-rw-r-- 1 gert gert 0 Jul  1 02:33 with

Oh no, era mi intención crear un archivo con el nombre a filename with spaces. Entonces, aquí usamos el \para escapar de los espacios. Esto evita que el shell proporcione cuatro argumentos touch, pero en su lugar proporciona uno solo con los espacios incluidos.

touch a\ filename\ with\ spaces

$ touch a\ filename\ with\ spaces
$ ls -al
total 24
drwxrwxr-x  2 gert gert  4096 Jul  1 02:35 .
drwxrwxr-x 55 gert gert 20480 Jul  1 02:33 ..
-rw-rw-r--  1 gert gert     0 Jul  1 02:35 a filename with spaces

Por supuesto, al usar comillas ( touch "a filename with spaces") se puede lograr lo mismo.

También se usa para declarar caracteres especiales como líneas nuevas:

$ echo -e "bla\nnewline" # \n means a newline character
bla
newline

Necesitamos la -eopción aquí para echo, porque como la página de manual puso: -e enable interpretation of backslash escapes.

gertvdijk
fuente
Para mayor aclaración: en el ejemplo del OP, cd \ escapa al final de la línea (la tecla Retorno). Esto significa que el terminal todavía está esperando el resto del comando. El mensaje >muestra que está esperando. El indicador habitual muestra el directorio actual, por lo que se muestra /después de usarlo cd /. La ~abreviatura de su directorio de inicio, por eso se muestra en ~lugar de /home/user.
Paddy Landau
1

Si ingresa una barra invertida, puede ingresar su comando en varias líneas. Esto es lo que significa el prefijo '>'.

alwe
fuente
1

El >signo significa que la solicitud está esperando que ingrese más, porque el comando anterior estaba incompleto. Puede reproducir esto con cualquier cosa, no solo cd. Solo escribe whateveryouwant\y obtendrás >.

La parte donde se ve ~denota el directorio de trabajo actual. Para cambiar el directorio de trabajo, utiliza el comando cd, que significa cambiar directorio (carpeta). Entonces, si lo hace cd /, cambia el directorio a /. Si lo hace cd /usr/bin, cambiará a /usr/bin, y así sucesivamente.

lses un comando para enumerar lo que hay en el directorio / carpeta actual. Entonces, si lo hace cd /(lo que significa que ha cambiado el directorio a /), lsenumeraría todos los archivos y carpetas allí. Si lo hace cd /etc/y luego ls, enumerará los archivos y carpetas que se encuentren /etc/, etc.

Alaa Ali
fuente
MUCHAS GRACIAS :-) por esta ayuda inmediata amigos ...
ShailyGarg