Como empacotar arquivos localizados separadamente em uma mesma estrutura de pastas?

0

Quando eu uso o zip para embalar arquivos de diferentes locais, como:

zip pack.zip /home/jack/jack.txt /home/jim/jim.txt

Os arquivos serão armazenados em "pack.zip" como a seguinte estrutura:

./home/jack/jack.txt
./home/jim/jim.txt

Mas isso não é o que eu esperava. Eu só espero que os arquivos sejam armazenados na raiz do arquivo zip como:

./jack.txt
./jim.txt

O que devo fazer?

    
por AGamePlayer 22.10.2014 / 06:51

2 respostas

4

Use a opção -j para zipar para remover (lixo) os caminhos:

-j
--junk-paths
Store just the name of a saved file (junk the path), and do not store directory names. By default, zip will store the full path (relative to the current directory).

Exemplo

Por exemplo, suponha que temos esses arquivos:

$ ls */
a/:
file

b/:
file2

E nós os compactamos com -j :

$ zip -j new.zip */*
  adding: file (stored 0%)
  adding: file2 (stored 0%)

Eles são armazenados sem caminhos:

$ unzip -l new.zip
Archive:  new.zip
  Length      Date    Time    Name ("^" ==> case
---------  ---------- -----   ----   conversion)
        0  2014-10-21 22:15   file
        0  2014-10-21 22:14   file2
---------                     -------
        0                     2 files

Arquivos com o mesmo nome de base geram um erro

Observe que, com -j , se dois arquivos de caminhos diferentes tiverem o mesmo nome, é um erro:

$ zip -j new2.zip */*
        zip warning:   first full name: a/file
                      second full name: b/file
                     name in zip file repeated: file
                     this may be a result of using -j

zip error: Invalid command arguments (cannot repeat names in zip file)
    
por 22.10.2014 / 07:13
1

O utilitário zip tem a opção --junk-path para isso:

$ zip --junk-path pack.zip home/jack/jack.txt home/jim/jim.txt
  adding: jack.txt (stored 0%)
  adding: jim.txt (stored 0%)
$ unzip -l pack.zip 
Archive:  pack.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2014-10-22 07:12   jack.txt
        0  2014-10-22 07:12   jim.txt
---------                     -------
        0                     2 files
    
por 22.10.2014 / 07:14

Tags