如何在双引号路径引用中使用`~`

How to use `~` inside a double quote path reference

此命令会导致错误

wc -l "~/tmp.txt"
wc: '~/tmp.txt': No such file or directory

虽然这些命令运行很好

wc -l ~/tmp.txt
14 /home/user/tmp.txt

wc -l "/home/user/tmp.txt"
14 /home/user/tmp.txt

有什么区别?如果路径中有空白 space,我可以做些什么来仍然在双引号内包含“~”吗?

波浪号只有在未被引用时才会展开。引用(或者,等价的,在反斜杠前加一个反斜杠)禁用扩展并将它们变成文字波浪号。

允许在参数中间开始和结束引号。您可以引用空格而不引用波浪号。这些都是等价的:

wc -l ~/"file name with spaces.txt"
wc -l ~/'file name with spaces'.txt
wc -l ~/file\ name\ with\ spaces.txt