当我这样做时
for files in ~/Desktop/mydir/*.text;
do
mycommand "$files" > "out.txt"
done
工作正常。但是当我用
做同样的事情时mycommand "$files" > "~/Desktop/out.txt"
我得~/Desktop/out.txt: No such file or directory.
为什么呢?
答案 0 :(得分:4)
将波形符号从引号中取出,以便正确展开:
mycommand "$files" > ~/Desktop/out.txt
如果路径的后续部分包含空格并且您想引用整个路径,也可以使用${HOME}
:
mycommand "$files" > "${HOME}/Desktop/out.txt"
答案 1 :(得分:1)
因为引用文件名会抑制大多数字符对shell的特殊含义。特别是,它抑制了文件名开头的'〜/'的含义。