试图在我的 .bashrc 文件中设置一些别名。这个……
export alias umusic="/Volumes/180 gram/Uncompressed/"
...出现以下错误...
-bash: cd: /Volumes/180: No such file or directory
...当我尝试“cd $umusic”时。
我试过各种方法来转义目录名中的空格,但都无济于事。 (180\克、180%20 克、单引号、双引号、无引号。)我意识到最简单的解决方案是将目录重命名为“180gram”,但我想知道如何解决这个特定问题。
我在 Mac 上,如果这有什么不同的话。
最佳答案
您对 export
命令的使用使 umusic
成为环境变量 而不是别名。 export
命令导出在命令行其余部分命名的环境变量,可选择使用新值。因此它导出一个名为 alias
的环境变量(可能未设置)和一个名为 umusic
的环境变量。
鉴于您正在扩展一个环境变量,shell 会执行以下替换:
cd $umusic
cd /Volumes/180 gram/Uncompressed/
这会生成您收到的错误,因为未引用空格。相反,如果您这样做:
cd "$umusic"
那么展开就是
cd "/Volumes/180 gram/Uncompressed/"
这就是您所期望的。
但是,为此使用环境变量可能仍然有点太多工作,因为您必须引用扩展。相反,试试这个别名:
alias umusic="cd '/Volumes/180 gram/Uncompressed'"
你只需要运行它
$ umusic
$ pwd
/Volumes/180 gram/Uncompressed
关于whitespace - 如何转义 bash 别名中的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3911080/