However, if there are no .txt files in your folder, the shell may pass the literal string *.txt to unzip . If unzip can't find a literal file named "asterisk-dot-t-x-t" inside the archive, it throws the "cannot find any matches" error. The Fix: Escaping and Quoting
If the stage directory is not present in the ZIP archive, or if the components directory is nested within another directory, the command will fail with the error "unzip cannot find any matches for wildcard specification stage components".
A. PowerShell
(libarchive) as an alternative, which handles wildcards more consistently:
unzip archive.zip -d temp/ && mv temp/stage/* ./