如何使用cd命令访问有空格的目录

Geo*_*nan 2 bash scripts 14.04

如何使用“cd”访问带有空格的目录,例如 bash 脚本中的“XML 5.1 Final Fields”

我试过 cd XML 5.1 Final Fields

但它给出了No such file or directory错误。

这是脚本:

#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
Run Code Online (Sandbox Code Playgroud)
ls /home/george/Desktop/m5u/test/    
XML 5.1 Final Fields
Run Code Online (Sandbox Code Playgroud)
~/Desktop/m5u/test$ ll
drwxr-xr-x  9 george george      4096 Feb 18 12:44 XML 5.1 Final Fields
Run Code Online (Sandbox Code Playgroud)

这是我运行脚本时得到的错误

line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 5

你的变量xmlfolder是错误的。它应该是

xmlfolder=XML\ 5.1\ Final\ Fields
Run Code Online (Sandbox Code Playgroud)

或 ="XML 5.1 最终字段"

您不需要/路径中的 - 因为它只是一个文件夹。你也并不需要"",如果你也在使用\。选一个。


由于您使用ls命令进行编辑,我可以看到您的文件夹名称末尾可能有一个空格。我建议您通过在 nautilus 中重命名或使用mv命令来删除空间。

如果你想保留空间,你的变量名应该是这样的:

xmlfolder=XML\ 5.1\ Final\ Fields\ 
Run Code Online (Sandbox Code Playgroud)

或者

xmlfolder="XML 5.1 Final Fields "
Run Code Online (Sandbox Code Playgroud)

请注意,如果您对\字符使用 First 选项,则还需要使用 来引用变量"",即"$xmlfolder"


该错误表明cd对路径不满意。

尝试cd从这里更改命令

cd $xmlpath
Run Code Online (Sandbox Code Playgroud)

cd "$xmlpath"
Run Code Online (Sandbox Code Playgroud)

老实说,您不需要cd在 bash 脚本中。只需使用绝对路径引用所有内容。


总之,您的xmlfolder=线路应该是xmlfolder=XML\ 5.1\ Final\ Fields,您的cd线路应该是cd "xmlpath"

我的代词是他/他