我的脚本代码是:
var="/some/path"
cp "$var*" "/another/path"
然后它抛出:
cp: cannot stat '/some/path/*': No such file or directory
我尝试过这个并得到同样的错误:
cp "${var}*" "/another/path"
最后,我通过以下方法解决了这个问题:
cp "$var"* "/another/path"
这次命令执行成功,但我想知道原因。
你能给出解释吗?
答案1
当您使用"$var*"
输出时/some/path*
,其中*
被视为字符(而不是通配符,因为它在双引号内 -查看 glob)。因此,在您的情况下(/some/path/*
),cp
正在搜索目录*
内命名的文件/文件夹path
。
当它在双引号之外时,它将被视为通配符,即以path
(path1
等path2
) 开头的任何内容。
或者 if path/*
(该目录上的任何内容)。