最近发现一个问题,macOS 终端的 ~符号在双引号包裹的情况下不会正常展开为用户目录,具体现象如下:
前提:假设我们当前终端所在的目录是~/Downloads; Terminal 用的是 macOS 现在默认的zsh。
- 如果执行的命令是
open ~/Documents可以正常打开目标目录; - 如果执行的命令是
open "~/Documents",也就是要打开的目录被双引号包裹了,那么打开的目录是:/Users/username/Downloads/~/Documents,自然这个目录是不存在的,所以提示The file /Users/username/Downloads/~/Documents does not exist.; - 如果执行的命令是
open "$HOME/Documents",可以正常打开目录;
我想得到的效果是像预期的那样 open "~/Documents"可以正常打开目标目录。
我不太清楚这个现象是如何出现的,请教大佬
- 这是怎么回事。
- 解决方案是啥。