在给予时cd \
,我得到了>
符号,同时将我的目录中的符号cd /
更改为。~
/
ls
命令还dev, root, usr
向我显示了类似 的目录cd /
。
答案1
在 Bash 中,\
(反斜杠)表示转义字符。这应该在以下情况下使用:转义字符比如空格、引号和其他对 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
哦不,我本来打算创建一个名为的文件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
当然,使用引号 ( touch "a filename with spaces"
) 也可以达到同样的效果。
它还用于声明换行符等特殊字符:
$ echo -e "bla\nnewline" # \n means a newline character
bla
newline
-e
这里我们需要选项echo
,因为正如手册页中所说:-e enable interpretation of backslash escapes
。
答案2
如果您输入反斜杠,则可以在多行上输入命令。这就是前缀“>”所代表的意思。
答案3
符号>
表示提示符正在等待您输入更多内容,因为上一个命令不完整。您可以使用任何东西来重现此情况,而不仅仅是cd
。只需输入whateveryouwant\
,您就会得到>
。
您看到的 部分~
表示当前工作目录。要更改工作目录,请使用命令cd
,这意味着更改目录(文件夹)。因此,如果您执行cd /
,它会将目录更改为/
。如果您执行cd /usr/bin
,它将更改为/usr/bin
,依此类推。
ls
是列出当前目录/文件夹中内容的命令。因此,如果您执行此操作cd /
(意味着您已将目录更改为/
),ls
则会列出其中的所有文件和文件夹。如果您执行此操作cd /etc/
然后执行ls
,则会列出中的所有文件和文件夹/etc/
,依此类推。