Pour extraire
Nous pouvons utiliser zipinfo
dans le cadre de ce processus, il s'agit d'un programme de zip
l'emballage.
zipinfo -2 example.zip
n'affichera que les noms de fichiers dans example.zip
Il s'agit de quelque chose qui ressemble à.. :
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
nous pouvons donc utiliser cette fonction pour extraire tous les fichiers :
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%.*}
: Supprime l'extension du nom de fichier long, de sorte que si le nom de fichier est inférieur à 256 caractères, nous n'obtiendrons pas d'extension en double.
${long_fname:0:250}.${i##*.}
: Crée un nouveau nom de fichier avec un nombre légitime de caractères et ajoute un symbole .
et l'extension réelle du fichier.
Nous parcourons simplement la liste des fichiers et extrayons chacun d'entre eux avec un nouveau nom de fichier légitime de 256 caractères.
Pour renommer
Vous pouvez utiliser zipnote
il fait partie de la commande zip
également.
Faites d'abord une sauvegarde de votre fichier zip.
Exécutez cette commande :
zipnote example.zip > names
Ouvrez les noms à l'aide d'un éditeur, cela ressemble à ceci :
@ 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)
Ajoutez de nouveaux noms de fichiers comme suit :
@ 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)
Ensuite, pour renommer les fichiers, utilisez :
zipnote -w example.zip < names
Vous les avez tous renommés, vous pouvez également écrire un simple script qui le fera automatiquement pour vous.