尝试在.bashrc文件中设置一些别名。这一个...
export alias umusic="/Volumes/180 gram/Uncompressed/"
...收到以下错误...
-bash:cd:/ Volumes / 180:没有这样的文件或目录
...当我尝试“cd $ umusic”时。
我尝试了各种方法来逃避目录名称中的空格,但无济于事。 (180 \ gram,180%20gram,单引号,双引号,无引号。)我意识到最简单的解决方案是将目录重命名为“180gram”,但我想知道如何解决这个特殊问题。
我在Mac上,如果这有任何区别。
答案 0 :(得分:18)
您使用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