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


10

给予时cd \,我将>符号cd /更改为~目录中的符号/

同时ls命令显示我目录,如dev, root, usr在案件cd /

Answers:


15

在您的shell Bash中,\(反斜杠)表示转义字符。如果要转义空格,引号和其他对Shell语法有意义的字符,但又希望将其作为数据传播到正在运行的命令,则应使用此方法。通过将此字符作为行中的最后一个字符,可以转义换行符,并且Bash正在等待进一步的输入(多行)。

/只是一个斜杠(表示目录分隔符)。仅仅/意味着根,因此例如ls /列出了根的内容。通过将工作目录更改为/,外壳程序中的指示符也将从~(例如,主目录的缩写/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。因此,这里我们使用\来转义空格。这样可以防止外壳程序提供四个参数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


为了进一步说明:在OP的示例中,cd \转义行尾(Return键)。这意味着终端仍在等待其余命令。提示>显示它正在等待。通常的提示会显示当前目录,这就是为什么/在使用后会显示它cd /。该~短手为你的主目录,这就是为什么它显示~代替/home/user
Paddy Landau

1

如果输入反斜杠,则可以在多行中输入命令。这就是前缀“>”的意思。


1

>符号表示提示正在等待您输入更多内容,因为前一个命令不完整。您可以用任何东西(不仅仅是)来重现它cd。只需键入whateveryouwant\,您就会得到>

您看到的部分~表示当前工作目录。要更改工作目录,请使用命令cd,这意味着更改目录(文件夹)。因此,如果这样做cd /,它将目录更改为/。如果这样做cd /usr/bin,它将更改为/usr/bin,依此类推。

ls是列出当前目录/文件夹中内容的命令。因此,如果您这样做cd /(意味着您已将目录更改为/),ls则将列出其中的所有文件和文件夹。如果你这样做cd /etc/,然后ls,它会列出任何文件和在文件夹中/etc/,依此类推。


非常感谢您:-)对于此即时帮助朋友……
ShailyGarg 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.