Se você tem dois arquivos zip a.zip
e b.zip
em seu diretório atual, então
$ cp *.zip destination/
expande para
$ cp a.zip b.zip destination/
A semântica para cp
é copiar os a.zip
e b.zip
para o destino.
Se você digitar
$ cp \*.zip destination/
simplesmente "expande" para
$ cp '*.zip' destination/
i.e. ele tentará copiar um único arquivo chamado "* .zip" para o destino, o que não é o que você deseja.
Por outro lado, se você digitar
$ unzip *.zip -d destination/
ele será novamente expandido para
$ unzip a.zip b.zip -d destination/
A semântica para unzip
é encontrar um arquivo chamado "b.zip" dentro do arquivo "a.zip", que não é mais o que você deseja.
Se você digitar
$ unzip \*.zip -d destination/
O comando unzip
não tenta simplesmente descompactar o arquivo chamado *.zip
, mas irá descompactar todos os arquivos terminados em .zip
.
A diferença é que ambos os comandos interpretam seus argumentos de maneira diferente.