No Bash, seu shell, o \
(barra invertida) denota um caractere de escape. Isso deve ser usado nos casos em que você deseja escapar caracteres , como espaços, citações e outros caracteres significativos para a sintaxe do shell, mas deseja que ele seja propagado como dados para o comando que está sendo executado. Por ter este como o último caractere na linha, você está escapando da nova linha e o Bash está esperando por mais informações (várias linhas).
/
é apenas uma barra (ou seja, separador de diretório ). Com apenas /
, isso significa a raiz, portanto, por exemplo, ls /
lista o conteúdo da raiz. Ao alterar o diretório de trabalho para /
, o indicador no seu shell também muda de ~
(abreviação de home directory, por exemplo, /home/gert/
) para o diretório em que você está ( /
).
Demo
$ 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
Ah, não, foi minha intenção criar um arquivo com o nome a filename with spaces
. Então, aqui nós usamos o \
para escapar dos espaços. Isso impede que o shell forneça quatro argumentos para touch
, mas forneça um único com os espaços incluídos.
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
Claro que, usando aspas ( touch "a filename with spaces"
), pode-se conseguir a mesma coisa.
Ele também é usado para declarar caracteres especiais, como novas linhas:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
Precisamos da opção -e
aqui para echo
, porque, como a página de manual coloca: -e enable interpretation of backslash escapes
.