Como se extrai uma pasta específica de um arquivo compactado compactado para um determinado diretório?
Eu tentei usar
unzip "/path/to/archive.zip" "in/archive/folder/" -d "/path/to/unzip/to"
mas isso apenas cria a pasta no caminho para o qual eu descompacte e não faz mais nada.
"\\"
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:
fonte
caution: filename not matched: foldername/\*
quando eu corrounzip $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: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: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.fonte