Extrahieren
Wir können zipinfo
als Teil dieses Prozesses ein Programm aus dem zip
Paket verwenden.
zipinfo -2 example.zip
zeigt nur die Dateinamen in example.zip
, so sieht es aus:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
Mit dieser Funktion können wir alle Dateien extrahieren:
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%.*}
: Entfernt die Erweiterung aus dem langen Dateinamen, sodass der Dateiname weniger als 256 Zeichen beträgt. Wir werden keine doppelte Erweiterung erhalten.
${long_fname:0:250}.${i##*.}
: Erstellt einen neuen Dateinamen mit einer legitimen Anzahl von Zeichen und fügt eine .
echte Dateierweiterung hinzu .
Wir führen einfach eine Schleife in die Dateiliste und extrahieren jede mit einem neuen legitimen Dateinamen, der 256 Zeichen umfasst.
Umbenennen
Sie können den zipnote
Befehl verwenden, er ist auch Teil des zip
Pakets.
Holen Sie sich zuerst ein Backup Ihrer Zip-Datei.
Führen Sie diesen Befehl aus:
zipnote example.zip > names
Öffnen Sie Namen mit einem Editor. Sie sehen folgendermaßen aus:
@ 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)
Fügen Sie neue Dateinamen wie folgt hinzu:
@ 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)
Um Dateien umzubenennen, verwenden Sie:
zipnote -w example.zip < names
Sie haben sie alle umbenannt. Sie können auch ein einfaches Skript schreiben, das dies automatisch für Sie erledigt.
unzip -l <ARCHIVE>
und wie sollen die Namen abgeschnitten werden? Möchten Sie die Verzeichnisstruktur während des Extrahierens im Archiv beibehalten?