Para extrair
Podemos usar zipinfo
como parte deste processo, é um programa de zip
package.
zipinfo -2 example.zip
mostrará apenas os nomes dos arquivos em 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 do nome do arquivo ser menor que 256 caracteres; Não vamos conseguir uma extensão duplicada. -
${long_fname:0:250}.${i##*.}
: Cria um novo nome de arquivo com número legítimo de caractere e também adiciona.
e extensão real do arquivo.
Simplesmente estamos fazendo um loop na lista de arquivos e extraímos cada um deles com um novo nome de arquivo legítimo que tem 256 caracteres.
Para renomear
Você pode usar o comando zipnote
, que também faz parte do pacote zip
.
Obtenha 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 arquivo 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)
Em seguida, para renomear os arquivos, use:
zipnote -w example.zip < names
Você renomeou todos eles, você também pode escrever um script simples que faz isso automaticamente para você.