如何 cd 到名称中包含空格的目录?

51 bash shell macos

我在 Mac Os X 上的桌面中有一个名为“Reader 0.5”的目录。何时访问终端中的目录,我使用以下代码:

cd /Users/niho/Desktop/Reader 0.5
Run Code Online (Sandbox Code Playgroud)

但它抛出:

无此文件或目录

错误。

我怎样才能 cd 到那个目录?

谢谢。

jos*_*chi 70

要么在目录名 ( cd "/Users/niho/Desktop/Reader 0.5")周围加上引号,要么对目录名 ( ) 进行转义/Users/niho/Desktop/Reader\ 0.5

  • 为了完整起见,您也可以决定只引用部分参数,例如 `cd /Users/niho/Desktop/"Reader 0.5"` 甚至 `cd /Users/niho/Desktop/Reader" "0.5` (6认同)
  • 最后一个(中缀引号)对我来说是新的。谢谢! (3认同)

Fel*_*lix 8

你可以逃离这个空间:

cd /Users/niho/Desktop/Reader\ 0.5
Run Code Online (Sandbox Code Playgroud)


小智 7

仅供参考,如果多个目录具有相同的名字,则在 bash 快捷方式中使用 Tab 会在遇到的第一个空格处中断。在这种情况下,用户必须使用:

cd Adobe\ Creative\ Cloud/
Run Code Online (Sandbox Code Playgroud)

或者我更喜欢的,

cd 'Adobe Creative Cloud'
Run Code Online (Sandbox Code Playgroud)


小智 5

正如其他人所提到的,引用路径或反斜杠转义空格将起作用。

此外,Mac OS X 上的默认 shell bash 支持使用 Tab 键的命令行完成。因此,例如,如果您键入:

cd /Users/niho/Desktop/Re
Run Code Online (Sandbox Code Playgroud)

然后按 Tab 键,shell 将填写文件夹名称的其余部分(只要您的桌面上没有其他以“Re”开头的文件夹),如果有空格,它将负责将参数引用到 cd在它填写的目录名称中。