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