Compresser et chiffrer en masse avec zpaqfranz et zip
Introduction
Cet article regroupe des commandes zsh pour compresser et chiffrer des fichiers avec zpaqfranz et zip. Ces commandes permettent de sécuriser vos données en une seule ligne, avec vérification d'intégrité et suppression automatique des originaux.
zpaqfranz offre un chiffrement robuste (AES-256) tandis que zip utilise ZipCrypto (moins sécurisé mais plus compatible).
Commandes zpaqfranz
1) Créer une archive chiffrée et la tester
read -s "KEY?Clef" ; zpaqfranz a data.zpaq data/ -m5 -key "$KEY" ; zpaqfranz t data.zpaq -key "$KEY"
2) Compresser et chiffrer toutes les ressources d'un dossier
read -s "KEY?Clef: " && echo && for item in *; do zpaqfranz a "${item}.zpaq" "$item" -m5 -key "$KEY"; done && unset KEY
3) Vérifier et supprimer les originaux
read -s "KEY?Clef: " && echo && for archive in *.zpaq; do original="${archive%.zpaq}"; if zpaqfranz t "$archive" -key "$KEY" >/dev/null 2>&1; then rm -rf "$original" && echo "Supprimé: $original"; else echo "ERREUR: $archive invalide, $original conservé"; fi; done && unset KEY
2+3) Compresser, vérifier et supprimer en une commande
read -s "KEY?Clef: " && echo && for item in *; do zpaqfranz a "${item}.zpaq" "$item" -m5 -key "$KEY"; done && for archive in *.zpaq; do original="${archive%.zpaq}"; if zpaqfranz t "$archive" -key "$KEY" >/dev/null 2>&1; then rm -rf "$original" && echo "Supprimé: $original"; else echo "ERREUR: $archive invalide, $original conservé"; fi; done && unset KEY
4) Décompresser toutes les archives
read -s "KEY?Clef: " && echo && for archive in *.zpaq; do zpaqfranz x "$archive" -key "$KEY"; done && unset KEY
5) Décompresser et supprimer les archives
read -s "KEY?Clef: " && echo && for archive in *.zpaq; do if zpaqfranz x "$archive" -key "$KEY"; then rm "$archive" && echo "Supprimé: $archive"; else echo "ERREUR: extraction de $archive échouée"; fi; done && unset KEY
6) Compresser récursivement tous les fichiers
(Utilise l'extension .enc.zpaq pour éviter les conflits avec des .zpaq existants, exclut les .DS_Store)
read -s "KEY?Clef: " && echo && find . -type f ! -name "*.enc.zpaq" ! -name ".DS_Store" | while IFS= read -r file; do zpaqfranz a "${file}.enc.zpaq" "$file" -m5 -key "$KEY" && if zpaqfranz t "${file}.enc.zpaq" -key "$KEY" >/dev/null 2>&1; then rm "$file" && echo "OK: $file"; else echo "ERREUR: ${file}.enc.zpaq invalide, original conservé"; fi; done && unset KEY
7) Décompresser récursivement tous les fichiers
read -s "KEY?Clef: " && echo && find . -type f -name "*.enc.zpaq" | while IFS= read -r archive; do if zpaqfranz x "$archive" -key "$KEY"; then rm "$archive" && echo "OK: $archive"; else echo "ERREUR: $archive"; fi; done && unset KEY
8) Supprimer récursivement les fichiers .par2.zpaq
find . -type f -name "*.par2.zpaq" -delete
Commandes zip
(Le chiffrement zip est moins robuste que zpaqfranz, mais plus compatible)
1) Créer une archive chiffrée et la tester
read -s "KEY?Clef" ; zip -r9 -P "$KEY" data.zip data/ ; unzip -t -P "$KEY" data.zip
2) Compresser et chiffrer toutes les ressources d'un dossier
read -s "KEY?Clef: " && echo && for item in *; do zip -r9 -P "$KEY" "${item}.zip" "$item"; done && unset KEY
3) Vérifier et supprimer les originaux
read -s "KEY?Clef: " && echo && for archive in *.zip; do original="${archive%.zip}"; if unzip -t -P "$KEY" "$archive" >/dev/null 2>&1; then rm -rf "$original" && echo "Supprimé: $original"; else echo "ERREUR: $archive invalide, $original conservé"; fi; done && unset KEY
2+3) Compresser, vérifier et supprimer en une commande
read -s "KEY?Clef: " && echo && for item in *; do zip -r9 -P "$KEY" "${item}.zip" "$item"; done && for archive in *.zip; do original="${archive%.zip}"; if unzip -t -P "$KEY" "$archive" >/dev/null 2>&1; then rm -rf "$original" && echo "Supprimé: $original"; else echo "ERREUR: $archive invalide, $original conservé"; fi; done && unset KEY
4) Décompresser toutes les archives
read -s "KEY?Clef: " && echo && for archive in *.zip; do unzip -P "$KEY" "$archive"; done && unset KEY
5) Décompresser et supprimer les archives
read -s "KEY?Clef: " && echo && for archive in *.zip; do if unzip -P "$KEY" "$archive"; then rm "$archive" && echo "Supprimé: $archive"; else echo "ERREUR: extraction de $archive échouée"; fi; done && unset KEY
6) Compresser récursivement tous les fichiers
(Utilise l'extension .enc.zip pour éviter les conflits avec des .zip existants, exclut les .DS_Store)
read -s "KEY?Clef: " && echo && find . -type f ! -name "*.enc.zip" ! -name ".DS_Store" | while IFS= read -r file; do zip -9 -j -P "$KEY" "${file}.enc.zip" "$file" && if unzip -t -P "$KEY" "${file}.enc.zip" >/dev/null 2>&1; then rm "$file" && echo "OK: $file"; else echo "ERREUR: ${file}.enc.zip invalide, original conservé"; fi; done && unset KEY
7) Décompresser récursivement tous les fichiers
read -s "KEY?Clef: " && echo && find . -type f -name "*.enc.zip" | while IFS= read -r archive; do dir=$(dirname "$archive"); original="${archive%.enc.zip}"; if unzip -o -P "$KEY" -d "$dir" "$archive"; then rm "$archive" && echo "OK: $archive"; else echo "ERREUR: $archive"; fi; done && unset KEY
8) Supprimer récursivement les fichiers .par2.zip
find . -type f -name "*.par2.zip" -delete
Commande utile : comparer deux dossiers
Pour vérifier l'intégrité après compression/décompression :
diff <(cd DOSSIER_ORIGINAL && find . -type f ! -name ".DS_Store" -exec md5 -r {} \; | sort) <(cd DOSSIER_TEST && find . -type f ! -name ".DS_Store" -exec md5 -r {} \; | sort)
Conclusion
Ces commandes permettent de gérer efficacement la compression et le chiffrement de vos données en ligne de commande. Privilégiez zpaqfranz pour une sécurité maximale (AES-256) et zip pour la compatibilité avec d'autres systèmes.
↑ Haut de page