como especificar o diretório de destino de descompactação

18

Existe uma opção no comando linux zip de forma que eu possa codificar o diretório de destino que ele descompacta. Por exemplo, eu gostaria de zipar os arquivos ./mydir para myzipfile.zip, mas eu quero que o comando unzip crie um diretório específico "projx" e expanda os arquivos que estavam sob ./mydir para ele.

zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )
    
por seedhom 10.07.2013 / 08:10

3 respostas

16

Não existe essa opção, pelo menos não para o Info-ZIP. Você tem que criar um diretório projx , mover / copiar seus arquivos para ele e então passá-lo para zip .

Se o diretório já existir, apenas passe a opção -d para unzip para especificar o diretório de destino para extração.

    
por 10.07.2013 / 08:30
2

Para fazer isso, há um outro caminho. Você pode simplificar todo o conteúdo do arquivo zip usando o método a seguir. O diretório de destino é " projx " e executa o seguinte comando.

cd /projx && unzip -j /path/to/myzipfile.zip

A opção -j é chamada de "junk paths" e apenas envia cada arquivo para o diretório atual, em vez de extrair qualquer estrutura de diretório.

    
por 24.04.2018 / 06:16
0

Eu não sei sobre uma opção de linha de comando específica, mas você pode usar os seguintes comandos para alcançar seu objetivo:

ln -s mydir projx
zip -r myzipfile.zip projx
rm projx

O primeiro comando cria um link simbólico, para que você possa acessar os arquivos em mydir também via projx . Então, usando Info-ZIP (testado com a versão 2.31), o link simbólico é desreferenciado (este é o padrão, a menos que você especifique -y ) e os arquivos são armazenados recursivamente:

adding: projx/ (stored 0%)
adding: projx/foo.1 (deflated 23%)
adding: projx/bar.2 (deflated 73%)
...

O nome da pasta também está armazenado no arquivo - assim, após a extração, o diretório projx é criado.

No entanto, não consigo pensar em uma possibilidade de armazenar caminhos absolutos, mas essa é uma má ideia de qualquer maneira.

    
por 10.07.2013 / 09:51

Tags