我尝试创建一个快捷方式,以便轻松切换到我的某些 Windows 分区。挂载它们后,有些可以正常工作,有些则不行。以下是发生的情况。
我的~/.bash_aliases
包含:
export geo=/media/geo/Novo\ volume/Geo
export windows=/media/geo/OS/Users/Geo
当我在终端输入
geo@george-Ubuntu:~$ cd $windows
geo@george-Ubuntu:/media/geo/OS/Users/Geo$
它按预期工作。
但是,当我尝试时:
geo@george-Ubuntu:/media/geo/OS/Users/Geo$ cd $geo
bash: cd: /media/geo/Novo: No such file or directory
找不到目录(确保“Novo Volume”已安装并且目录存在)
我怎样才能解决这个问题?符号链接:没有这样的文件或目录对我没有帮助。
答案1
你看:
bash: cd: /media/geo/Novo: No such file or directory
由于您尝试为文件夹设置一个变量"/media/geo/Novo volume/Geo"
(带有空格),并且错误是关于仅到空格为止的路径的第一部分您会看到,空格被错误地视为分隔符。
如果你想使用
cd $geo
您可能必须在字符串中包含引号:
export geo='"/media/geo/Novo volume/Geo"'
这不是一个好的解决方案,更好的方法是在您的.bash_aliases
示例中设置一个别名:
alias cd-geo='cd "/media/geo/Novo volume/Geo"'
alias cd-windows='cd /media/geo/OS/Users/Geo'
答案2
您需要做的就是引用该变量,因为它包含一个空格字符。
cd "$geo"
在 shell 代码中,引用可能包含空格的变量始终是一种好的做法。
答案3
被盗这个问题如果你这么做,cd "$geo"
我敢打赌你会得到正确的结果
话虽如此,尝试做
alias geo="cd /media/geo/OS/Users/Geo"
然后只需使用geo
(作为命令)即可到达那里。