这是因为 shell 中的通配符(*
)展开行为不同:
unzip *.zip
:
- shell 会先展开
*.zip
,如果当前目录有多个 zip 文件 - 命令会变成
unzip file1.zip file2.zip file3.zip
- 这可能导致 unzip 命令收到多个参数而报错
unzip "*.zip"
:
- 引号阻止了 shell 展开通配符
- 通配符会直接传递给 unzip 命令
- unzip 命令自己处理通配符匹配
正确的写法有几种:
1 | # 方法1:使用引号 |
如果需要更健壮的处理:
1 |
|