mv命令末尾的星号是做什么的

Ech*_*ary 5 unix linux shell wildcard

所以我要继续移动一堆文件

mv /source /dest &
mv /source/* /dest/dest/ &
...
...
Run Code Online (Sandbox Code Playgroud)

然后我变得粗心大意

mv /source/filena* /dest/dest/ *
Run Code Online (Sandbox Code Playgroud)

我的天啊!^c^c^c^c [终端命令无响应]这里到底发生了什么?

当我将*(星号)放在命令的末尾而不是&(&符号)时会发生什么?

Gil*_*il' 6

shell扩展了通配符*.该mv命令永远不会看到通配符,只看到扩展的结果.

通配符*以字典顺序扩展到当前目录中的文件列表.如果最后一个文件是一个目录,然后将所有上述文件(/source.filenafoo,/source/filenabar,/dest/dest,hello)移动到该子目录.如果最后一个文件不是目录,则mv抱怨"目标a.png不是目录"(或者说该效果的话).

什么mv ./*不指定目的地呢?更详细的例子.