2 votes

Dézipper et 7z avec mot de passe, sans fichiers temporaires

De temps en temps, je reçois un lien de téléchargement pour une archive de données .zip de 6 Go que j'aimerais utiliser :

  • télécharger

  • dézipper

  • recompresser avec 7z, avec un mot de passe

J'aimerais éviter d'utiliser des fichiers temporaires pour chaque étape, car cela utiliserait ~ 18 Go d'opérations d'écriture sur mon SSD, alors que seulement 6 Go sont nécessaires à la fin.

Sous Linux, ce serait probablement wget ... | unzip ... | 7z ... avec des tuyaux.

Comment faire cela sous Windows ?


Note : cette question est liée à Faire en sorte que 7-Zip extraie une archive directement dans un répertoire mais pas un doublon, car la question liée ne couvre que la partie "7z temp" de la question, alors que je parle d'une chaîne téléchargement+unzip+7z.
Je cherche aussi un solution en ligne de commande et non une solution GUI de type "drag'n'drop" telle que Faire en sorte que 7-Zip extraie une archive directement dans un répertoire .

2voto

Basj Points 1572

La solution suivante en ligne de commande évite les fichiers temporaires pour la décompression/compression, et fonctionne sous Windows. Elle utilise -so y -si drapeaux stdout/stdin de 7z .

7z e -so -r Takeout20201231_0941.zip *.mbox | 7z a -si -pSECRET -mhe=on -mx=2 Takeout20201231_0941.7z

Notez qu'il n'y a qu'une seule correspondance pour *.mbox dans mon archive originale, il n'y a donc qu'un seul fichier à décompresser / compresser.

Avec plusieurs fichiers, ce serait plus complexe, comme l'a noté @DanielB dans son commentaire :

Cette opération ne convient pas aux tuyaux ou autres. Vous ne pouvez pas vraiment faire circuler des fichiers multiples, car il ne s'agit pas seulement de données. Ils ont aussi des noms.


Enfin, vous pouvez télécharger le ZIP original directement à l'adresse suivante 7z e ne serait pas possible parce que les fichiers ZIP ne peuvent pas être décompressés en flux : ils ont souvent un index. à la fin du fichier , ce qui nécessite le fichier entier avant de commencer à décompresser.

Pour cela, nous pouvons créer rapidement un disque RAM X:\ avec OSFMount :

osfmount.com -a -t vm -m X: -s 8G -o format:ntfs

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X