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


47

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

cd /Users/niho/Desktop/Reader 0.5

但它抛出:

没有相应的文件和目录

错误。

我怎样才能进入该目录?

谢谢。

macos  bash  shell 

Answers:


64

您可以在目录名称(cd "/Users/niho/Desktop/Reader 0.5")前后加上引号,也可以对目录名称()进行转义/Users/niho/Desktop/Reader\ 0.5


5
仅出于完整性考虑,您还可以决定仅引用部分参数,例如cd /Users/niho/Desktop/"Reader 0.5",甚至cd /Users/niho/Desktop/Reader" "0.5
user123444555621 2011年

3
最后一个(中缀引号)对我来说是新的。谢谢!
2011年

现在:如何将带有中缀空格的路径放入env变量中,以便可以执行此操作% cd $foo
Bogatyr,2015年


4

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

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

cd /Users/niho/Desktop/Re

然后按Tab键,外壳程序将填充其余的文件夹名称(只要您的桌面上没有其他以“ Re”开头的文件夹),并且如果存在空格,将照顾引用cd的参数。在它填写的目录名称中。


4

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

cd Adobe\ Creative\ Cloud/

还是我喜欢的

cd 'Adobe Creative Cloud'

在bash和zsh上,该引用都不适合我:```bash 2 => cd'〜/ Library /'bash:cd:〜/ Library /:没有这样的文件或目录3 => cd〜/ Library / 4 => PWD /用户/ pguruprasad /库```
Prasanth

-1

如果您想更频繁地对某些目录使用cd命令,这是一种更舒适的方法。这样可以避免每次都写入目录名称。

在您的.bashrc或.profile中,插入:

# activate cdable_vars
shopt -s cdable_vars

# define shortcut for your directory, here DIR
export DIR="/Users/<username>/path/to/your/dir"

一次执行脚本: . .bashrc

然后,您可以像这样cd到您的目录:

cd DIR

即使路径包含空格,这也应该起作用。

但是,在shell脚本中,必须像这样引用变量:

cd "$DIR"
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.