Estrarre
Possiamo usare zipinfo
come parte di questo processo, è un programma dal zip
pacchetto.
zipinfo -2 example.zip
mostrerà solo i nomi dei file example.zip
, qualcosa del tipo:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
così possiamo usare questa funzione per estrarre tutti i file:
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%.*}
: Rimuove l'estensione dal nome file lungo, quindi nel caso in cui il nome file sia inferiore a 256 caratteri; Non avremo un'estensione duplicata.
${long_fname:0:250}.${i##*.}
: Crea un nuovo nome di file con un numero legittimo di caratteri e aggiunge .
un'estensione reale del file.
Stiamo semplicemente eseguendo il looping nell'elenco dei file ed estraiamo ciascuno di essi con un nuovo nome di file legittimo di 256 caratteri.
Rinominare
Puoi usare il zipnote
comando, fa anche parte del zip
pacchetto.
Ottieni prima un backup del tuo file zip.
Esegui questo comando:
zipnote example.zip > names
Apri nomi usando un editor, è simile al seguente:
@ 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)
Aggiungi nuovi nomi di file come questo:
@ 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)
Quindi per rinominare i file utilizzare:
zipnote -w example.zip < names
Li hai rinominati tutti, puoi anche scrivere un semplice script che lo fa automaticamente per te.
unzip -l <ARCHIVE>
e come si desidera che i nomi vengano troncati? Vuoi mantenere la struttura delle directory all'interno dell'archivio durante l'estrazione?