Extrair
Podemos usar zipinfo
como parte desse processo, é um programa do zip
pacote.
zipinfo -2 example.zip
mostrará apenas os nomes dos arquivos example.zip
, algo parecido com:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
para que possamos usar esse recurso para extrair todos os arquivos:
zipinfo -2 example.zip | while read i;
do
long_fname=${i%.*}
unzip -p -c example.zip "$i" > "${long_fname:0:250}.${i##*.}"
done;
long_fname=${i%.*}
: Remove a extensão do nome do arquivo longo; portanto, no caso de o nome do arquivo ter menos de 256 caracteres; Não vamos obter uma extensão duplicada.
${long_fname:0:250}.${i##*.}
: Cria um novo nome de arquivo com número legítimo de caracteres e também adiciona uma .
extensão real e arquivo.
Simplesmente entramos na lista de arquivos e extraímos cada um deles com um novo nome de arquivo legítimo, com 256 caracteres.
Renomear
Você pode usar o zipnote
comando, também faz parte do zip
pacote.
Faça um backup do seu arquivo zip primeiro.
Execute este comando:
zipnote example.zip > names
Abra nomes usando um editor, é assim:
@ file name long in zip and a lot of other strings in the file name
@ (comment above this line)
@ (zip file comment below this line)
Adicione novos nomes de arquivos como este:
@ file name long in zip and a lot of other strings in the file name
@=new short name for above file
@ (comment above this line)
@ (zip file comment below this line)
Para renomear arquivos, use:
zipnote -w example.zip < names
Você renomeou todos eles, também pode escrever um script simples que faça isso automaticamente para você.
unzip -l <ARCHIVE>
e como você deseja que os nomes sejam truncados? Deseja manter a estrutura de diretórios dentro do arquivo morto durante a extração?