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)