Qual è la differenza tra i comandi "cd \" e "cd /" nel terminale Ubuntu?


10

Nel dare cd \, ottengo il >simbolo mentre cd /cambia il ~segno nella mia directory in /.

Anche il lscomando mi mostra le directory come dev, root, usrnel caso di cd /.

Risposte:


15

In Bash, la tua shell, la \(barra rovesciata) indica un carattere di escape. Questo dovrebbe essere usato nei casi in cui si desidera sfuggire a caratteri come spazi, virgolette e altri caratteri significativi per la sintassi della shell, ma si desidera farli propagare come dati al comando in esecuzione. Avendo questo come ultimo carattere sulla linea stai sfuggendo alla nuova riga e Bash è in attesa di ulteriori input (più righe).

/è solo una barra (che significa separatore di directory ). Con solo /questo significa la radice, quindi ad esempio ls /elenca il contenuto della radice. Modificando la directory di lavoro in /, l'indicatore nella shell cambia anche da ~(abbreviazione di home directory, ad es. /home/gert/) Alla directory in cui ci si trova ( /).


dimostrazione

$ 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 mia intenzione creare un file con il nome a filename with spaces. Quindi, qui usiamo il \per sfuggire agli spazi. Questo impedisce alla shell di fornire quattro argomenti touch, ma invece fornisce uno solo con gli spazi inclusi.

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

Naturalmente, usando le virgolette ( touch "a filename with spaces") si può ottenere la stessa cosa.

Viene anche usato per dichiarare caratteri speciali come newline:

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

Abbiamo bisogno della -epossibilità qui per echo, perché, come la pagina di manuale messo: -e enable interpretation of backslash escapes.


Per ulteriori chiarimenti: nell'esempio del PO, cd \ sfugge alla fine della riga (tasto Invio). Ciò significa che il terminale sta ancora aspettando il resto del comando. Il prompt >mostra che è in attesa. Il solito prompt mostra la directory corrente, motivo per cui viene visualizzata /dopo l'uso cd /. È ~una scorciatoia per la tua directory home, motivo per cui mostra ~invece di /home/user.
Paddy Landau,

1

Se si inserisce una barra rovesciata, è possibile immettere il comando su più righe. Questo è ciò che rappresenta il prefisso '>'.


1

Il >segno indica che il prompt è in attesa di input da parte dell'utente, poiché il comando precedente era incompleto. Puoi riprodurlo con qualsiasi cosa, non solo cd. Digita whateveryouwant\e otterrai >.

La parte in cui viene visualizzato ~indica la directory di lavoro corrente. Per cambiare la directory di lavoro, utilizzare il comando cd, che significa cambia directory (cartella). Quindi, se lo fai cd /, cambia la directory in /. Se lo fai cd /usr/bin, cambierà in /usr/bine così via.

lsè un comando per elencare ciò che è nella directory / cartella corrente. Quindi, se lo fai cd /(nel senso che hai cambiato la directory in /), lselencherebbe qualunque file e cartella. Se lo fai cd /etc/e poi ls, elencherà tutti i file e le cartelle che si trovano /etc/e così via.


GRAZIE MOLTO :-) per questo immediato aiuto amici ...
ShailyGarg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.