在给予时cd \
,我得到了>
符号,同时cd /
将~
目录中的符号更改为/
.
同时ls
命令显示我目录,如dev, root, usr
在案件cd /
。
ger*_*ijk 15
在 Bash(你的 shell)中,\
(反斜杠)表示转义字符。这应该在您想要转义空格、引号和其他对 shell 语法有意义的字符的情况下使用,但您希望将其作为数据传播到您正在运行的命令。通过将此作为行上的最后一个字符,您可以转义换行符,而 Bash 正在等待进一步的输入(多行)。
/
只是一个正斜杠(意思是目录分隔符)。仅/
这意味着根,因此例如ls /
列出根的内容。通过将工作目录更改为/
,shell 中的指示符也会从~
(主目录的缩写,例如/home/gert/
)更改为您所在的目录 ( /
)。
$ 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
Run Code Online (Sandbox Code Playgroud)
哦不,我打算创建一个名为a filename with spaces
. 所以,这里我们使用\
来转义空格。这可以防止 shell 向 提供四个参数touch
,而是提供一个包含空格的参数。
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
Run Code Online (Sandbox Code Playgroud)
当然,通过使用引号 ( touch "a filename with spaces"
) 可以达到同样的目的。
它还用于声明特殊字符,如换行符:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
Run Code Online (Sandbox Code Playgroud)
我们需要-e
这里的选项echo
,因为如手册页所说的那样:-e enable interpretation of backslash escapes
。