Respostas:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
funciona bem no EL 6
"\\"
seria usado (caso contrário, você sempre terá que lembrar quais caracteres são escapes especiais). Portanto, é uma diferença de citação se o autor quis dizer "citar o personagem glob" (desnecessário). De qualquer maneira, uma única barra invertida como essa é um erro de digitação.
Experimentar:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
quando eu corro unzip $repozip "$2-master/\*" -d /srv/www/magento/
, onde $2
é o nome da pasta no zip eu quero puxar todos os arquivos e pastas fora
"path/*"
.
mv
depois para obter arquivos onde eu precisava deles.
-j
para isso.
-j
retira todas as informações do caminho e todos os arquivos entram na pasta de destino. Existe uma maneira de remover apenas a parte comum do caminho? Semelhante ao zip -r
.
As duas respostas existentes estão corretas, mas é um pouco complicado especificar o diretório de destino, que deve ser melhor esclarecido.
Digamos que /target/root/
é o diretório de destino da ação de descompactação original, por exemplo:
unzip -qq src.zip -d "/target/root/"
Então, precisamos usar o mesmo /target/root/
que o diretório de destino posteriormente, mesmo que desejemos extrair apenas um subdiretório específico, como o descompactamento funciona:
unzip -qq src.zip "sub/dir/*" "/target/root/"
Afinal, a regra é realmente simples, use o mesmo diretório raiz de destino para a -d
opção .
BTW, a -qq
opção é descompactar para ficar realmente silencioso, fique à vontade para removê-lo.