![cp:无法统计‘/some/path/*’:没有这样的文件或目录](https://linux22.com/image/1536897/cp%EF%BC%9A%E6%97%A0%E6%B3%95%E7%BB%9F%E8%AE%A1%E2%80%98%2Fsome%2Fpath%2F*%E2%80%99%EF%BC%9A%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95.png)
我的脚本代码是:
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/*
(该目录上的任何内容)。