Extraer
Podemos usarlo zipinfo
como parte de este proceso, es un programa del zip
paquete.
zipinfo -2 example.zip
solo mostrará los nombres de los archivos example.zip
, algo parecido a esto:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
para que podamos usar esta función para extraer todos los archivos:
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%.*}
: Elimina la extensión del nombre de archivo largo, por lo que en caso de que el nombre del archivo sea menor que 256 caracteres; No vamos a obtener una extensión duplicada.
${long_fname:0:250}.${i##*.}
: Crea un nuevo nombre de archivo con un número legítimo de caracteres y también agrega una .
extensión real de archivo.
Simplemente estamos ingresando a la lista de archivos y extraemos cada uno de ellos con un nuevo nombre de archivo legítimo que es de 256 caracteres.
Renombrar
Puede usar el zipnote
comando, también es parte del zip
paquete.
Obtenga una copia de seguridad de su archivo zip primero.
Ejecute este comando:
zipnote example.zip > names
Abra los nombres usando un editor, se ve así:
@ 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)
Agregue nuevos nombres de archivo 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)
Luego, para cambiar el nombre de los archivos, use:
zipnote -w example.zip < names
Los renombró a todos, también puede escribir un script simple que haga esto automáticamente por usted.
unzip -l <ARCHIVE>
y cómo desea que se trunquen los nombres? ¿Desea retener la estructura de directorios dentro del archivo durante la extracción?