Compression et archive

Soumis par efaistos le dim, 19/10/2008 - 18:25

Aujourd'hui, nous allons voir quelques commandes en vrac concernant l'archivage et la compression de fichiers.

Pour crypter un fichier, utilisons gpg :

$ gpg -c fichier

Cette commande va nous générer une version cryptée de notre fichier, avec l'extension .gpg et laisser l'ancien fichier dans votre répertoire personnel. Vous pouvez maintenant supprimer le fichier non crypté. Pour effectuer une suppression efficace du fichier je vous invite à regarder du côté de la commande shred dont nous avons déjà parlé il y a de cela quelques semaines.

Utilisons toujours gpg pour le décrypter :

$ gpg file.gpg

Faire une archive compressée d'un répertoire projets :

$ tar cvjf projets.tar.bz2 projets

Pour extraire, l'archive :

$ tar xvjf projets.tar.bz2

Vous pouvez également utiliser l'option z à la place du j pour avoir des archives de la forme archive.tar.gz
Généralement, on obtient des archives compressées plus petites avec bzip2 mais la décompression sera plus lente. Si vos archives doivent être décompréssées régulierement je vous conseillerais d'utiliser plutôt gzip ainsi :

$ tar zcvf archive.tar.gz repertoire

De la même façon, pour faire une archive de juste quelques fichiers il suffit de faire :

$ tar zcvf archive.tar.gz fichier1 fichier2 ... fichierN

Faire une archive cryptée du répertoire projets sur une machine distante via ssh :

$ tar zcvf - projets | gpg -c | ssh utilisateur@machine-distante 'dd of=projets.tar.gz.gpg'

Pour décrypter et décompresser l'archive sur la machine distante, il suffit de faire :

$ gpg -d projets.tar.gz.gpg
$ tar zxvf projets.tar.gz

Pour faire un sauvegarde de tous vos fichiers .txt de votre répertoire documents :

$ find documents/ -name '*.txt' | xargs tar zcvf -> archive_txt.tar.gz

Pour faire une archive de tout votre disque en admettant que votre disque soit /dev/sda :

$ dd bs=1M if=/dev/sda | gzip | ssh utilisateur@machine-distante 'dd of=sda.gz'