bash:路径中的撇号

时间:2013-04-01 12:25:58

标签: bash path escaping

在Mac OS X上(bash 4.2),我尝试在路径中使用撇号进入cd:

cd "~/Documents/study/new/Beej's Guide to Unix IPC_code/examples"

然后我得到了

-bash: cd: ~/Documents/study/new/Beej's Guide to Unix IPC_code/examples: No such file or directory

我也试过像这样逃避撇号:

cd "~/Documents/study/new/Beej\'s Guide to Unix IPC_code/examples"

结果:

-bash: cd: ~/Documents/study/new/Beej\'s Guide to Unix IPC_code/examples: No such file or directory

对我来说唯一有用的事情是难以逃避白色空间和撇号而没有像这样的双引号:

cd ~/Documents/study/new/Beej\'s\ Guide\ to\ Unix\ IPC_code/examples

在这种情况下,有没有办法可以避免难以逃避?

2 个答案:

答案 0 :(得分:6)

波形符号(~)不会在引号内展开,因此您需要将其保留在引号之外。其中任何一个都可行:

cd ~/"Documents/study/new/Beej's Guide to Unix IPC_code/examples"
cd ~/Documents/study/new/"Beej's Guide to Unix IPC_code"/examples
cd ~/Documents/study/new/Beej"'s Guide to Unix "IPC_code/examples

答案 1 :(得分:0)

你有哪个版本的bash?就像@MaxLeske所说,它适用于版本3.2.48的自动完成。

删除双引号内的波浪号(〜)字符。而是提供一条完整的道路。

cd "/Users/<uname>/Documents/study/new/Beej's Guide to Unix IPC_code/examples"