ubuntu 终端中“cd \”和“cd /”命令有什么区别?

ubuntu 终端中“cd \”和“cd /”命令有什么区别?

在给予时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/,依此类推。

相关内容